Я проанализировал некоторые подобные вопросы, размещенные здесь, но они мне не подходят.Имея getopts, чтобы показать справку, если никаких параметров не было
Я получил этот замечательный Баш скрипт, который делает некоторые интересные функции, вот соответствующий раздел коды:
while getopts ":hhelpf:d:c:" ARGS;
do
case $ARGS in
h|help)
help_message >&2
exit 1
;;
f)
F_FLAG=1
LISTEXPORT=$OPTARG
;;
d)
D_FLAG=1
OUTPUT=$OPTARG
;;
c)
CLUSTER=$OPTARG
;;
\?)
echo ""
echo "Unimplemented option: -$OPTARG" >&2
echo ""
exit 1
;;
:)
echo ""
echo "Option -$OPTARG needs an argument." >&2
echo ""
exit 1
;;
*)
help_message >&2
exit 1
;;
esac
done
Теперь все мои варианты хорошо работает, если срабатывают. То, что я хочу, это getopts, чтобы выплеснуть функцию help_message, когда не запускается никакой параметр, скажем, что скрипт запущен только ./scriptname.sh без аргументов.
Я видел несколько способов размещены здесь, внедрение IF цикла и функции, но, так как я только начинаю с Баш и у меня уже есть некоторые, если циклы по этому сценарию, я хотел бы знать, если есть проще (и довольно) к этому.
Я не думаю, что 'help' в этой строке' getopts' делает то, что вы ожидаете от нее. 'getopts'doesn't do long options. Это должно быть добавление опций для 'e',' l' и 'p' для этого вызова. –
Это 'help' работает исправно. – Omar
Вы в этом уверены? Что вы испытываете, чтобы это увидеть? Прикрепите «случай эха h» в блоке case «h | help» и «echo» case * ''в случае' * ', а затем попробуйте' script -help' (а затем 'script -l') и посмотри, что получишь. Также 'script --help' (который будет длинной опционной версией). –