- операция
-eq
используется только для сравнения чисел.
- Для сравнения строк используется операция
=
- Вы забыли
$
знак для переменных arg
в Bash, должен быть $arg
- Когда мы используем переменные в Bash, нам лучше использовать двойные кавычки.
- используйте
@()
для сравнения нескольких строк.
поэтому условия if [[ arg -eq "-h" ]]
должны быть [[ "$arg" = "-h" ]]
При сравнении переменной с несколькими строками мы можем использовать [[ "$arg" = @(-h|-H|--help|--HELP|--h|--H|-help|--HELP) ]]
.
if [[ "$arg" = @(-h|-H|--help|--HELP|--h|--H|-help|--HELP) ]]; then
echo "Help menu requested...."
echo $'\n\n'
echo $(printf '~%.0s' {1..100})
printf ' %.0s' {1..43}
echo "Help Menu"
echo $(printf '~%.0s' {1..100})
echo $'\n'
exit 0
else
echo "Executing a program...."
./another_script.sh
fi
Кроме того, мы можем использовать boxes
( boxes - неограниченное количество полей командной строки ASCII!
) для создания окна комментария
cat <<EOF | boxes -a c -d shell -p a5 -s 30x9
HELP MENU
bla bla
EOF
вывод:
########################################
# #
# #
# HELP MENU #
# #
# bla bla #
# #
# #
########################################