Если вам нужен более короткий код, это может помочь:
other="you"; [[ $# -ne 0 ]] && other="$1"
echo "One for ${other}, one for me."
В первой строке по умолчанию для переменной other
указано значение you
, а затем она перезаписывается, если вы указали имя. Вторая строка просто распечатывает его для вас.
Это не поможет, если пользователь введет пустое имя (как при script.sh ""
), поэтому вместо этого вы можете захотеть просто проверить саму переменную, а не счетчик :
other="you"; [[ -n "$1" ]] && other="$1"
echo "One for ${other}, one for me."