Подтвердить что ты не робот

Bash, предупреждение без аргументов и решения по делу

Я изучаю bash.

Я хотел бы сделать простой script, который, когда не указаны аргументы, показывает некоторое сообщение. И когда я даю числа как аргумент, s зависит от значения, он делает то же или другое.

Я также хотел бы узнать предложения для лучших онлайн-руководств для начинающих в bash

Спасибо

4b9b3361

Ответ 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 и выполните поиск (/) для "унарного" для большего количества таких операторов.