Вы могли бы:
assignment_name="following"
if [ $# -eq 1 ]
then
assignment_name=$1
fi
Вы можете изменить -eq 1
на -gt 0
, в зависимости от того, что вы ожидаете в аргументах.
Как показано, я хотел бы не используйте case
здесь. case
полезно, когда переменная может иметь ряд хорошо определенных значений, с которыми вы можете тестировать. Использование case
позволяет избежать длинного списка операторов if
. Это более компактный способ заменить if, then, if, then, if, ...
.
Но если вы настаиваете
case $# in
0)
assignment_name="following"
;;
1)
assignment_name="$1"
;;
*)
echo "ERROR: arguments can be empty, or the name of 1 assignment."
exit 1
;;
esac