Bash, предупреждение без аргументов и решения по делу
Я изучаю bash.
Я хотел бы сделать простой script, который, когда не указаны аргументы, показывает некоторое сообщение. И когда я даю числа как аргумент, s зависит от значения, он делает то же или другое.
Я также хотел бы узнать предложения для лучших онлайн-руководств для начинающих в bash
Спасибо
Ответы
Ответ 1
if [[ $# -eq 0 ]] ; then
echo 'some message'
exit 0
fi
case "$1" in
1) echo 'you gave 1' ;;
*) echo 'you gave something else' ;;
esac
Advanced Bash -Scripting Guide довольно хорошо. Несмотря на свое название, он рассматривает основы.
Ответ 2
Если только интересуется сбой при отсутствии какого-либо аргумента, Замена параметров велика:
#!/bin/bash
# usage-message.sh
: ${1?"Usage: $0 ARGUMENT"}
# Script exits here if command-line parameter absent,
#+ with following error message.
# usage-message.sh: 1: Usage: usage-message.sh ARGUMENT
Ответ 3
Пример
if [ -z "$*" ]; then echo "No args"; fi
Результат
No args
Подробнее
-z - унарный оператор для длины строки равен нулю.
$*
- все аргументы.
Кавычки для безопасности и инкапсуляции нескольких аргументов, если они есть.
Используйте man bash
и выполните поиск (/) для "унарного" для большего количества таких операторов.