Если вы в порядке с -h вместо --help, вы также можете использовать getopts, что очень удобно. Код, который вам тогда понадобился (измененный от ответа Эрика Карвалью):
#!/bin/bash
function show_help() {
cat << ENDHELP
-a you can do stuff like that.
-b you can do stuff like this.
-c this is extremely fancy stuff.
ENDHELP
}
#checks if there are any arguments by (ab)using the short-circuited OR
(( $# )) || echo "No arguments. Run $0 --help"
while getopts 'habc' opt; do
case "$opt" in
h)
show_help
;;
a)
echo "sudo /path/to/other/script"
;;
b)
echo "do_some_stuff"
echo "do_another_stuff"
;;
c)
echo "do_extremely_fancy_stuff"
echo "do_another_extremely_fancy_stuff"
echo "run_as_many_commands_as_you_want"
;;
*)
echo "Run $0 --help"
;;
esac
done
Теперь вы можете передать несколько параметров вашему shellscript, поэтому, если вы хотите запустить a, b и c, вы можете сделать
./script.bash -a -b -c
или даже
./script.bash -abc
Строка опций 'habc' сообщает вам, какие параметры разрешены, getopts автоматически сообщит вам о неподдерживаемых параметрах. Вы также можете добавить аргументы к параметрам (например, имя других скриптов, которые вы хотите запустить), тогда вам нужно добавить двоеточие (:) за свой параметр, тогда аргумент сохраняется в $OPTARG. Посмотрите на этот (неполный) wikipage, как это сделать.
PS Вы также можете использовать (более старый) getopt (без s), getopt немного сложнее, но позволяет использовать --help.
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
Обновить загрузчик: sudo update-grub
Перезагрузка! reboot
Проверено на ubuntu 15.10