Сценарии оболочки отлично подходят для автоматизации задач в системах Linux. Они также позволяют вам отправлять входные аргументы, которые вы можете обрабатывать дальше в рамках сценария. Но если вы обратитесь к входному аргументу, который не существует, вы получите ошибку при выполнении сценария оболочки. Поэтому рекомендуется проверить, существует ли входной аргумент в shell-сценарии, прежде чем обрабатывать его. Ниже приведены шаги для этого.
Как проверить, существует ли входной аргумент в сценарии Bash
Есть несколько способов проверить, существуют ли входные аргументы в сценарии оболочки.
1. Проверить, нет ли вводимых аргументов
Переменная оболочки $# хранит количество входных переменных, переданных сценарию оболочки. Мы можем использовать ее, чтобы определить, была ли какая-либо переменная предоставлена вашему сценарию оболочки. Вот пример, как это сделать.
1 2 3 4 | if [ $# -eq 0 ] then echo "Аргументы не указаны" fi |
2. Проверка существования определенного аргумента
Вы также можете проверить, существует ли определенный аргумент или нет. Первый аргумент, передаваемый сценарию оболочки, хранится в $1, второй - в $2, и так далее.
Вы можете использовать оператор -z, чтобы проверить, пуста ли определенная переменная shell или нет. Вот пример проверки существования или отсутствия первого аргумента.
1 2 3 4 | if [ -z "$1" ] then echo "Аргументы не указаны" fi |
Аналогичным образом можно проверить, не существует ли переменная shell, добавив оператор отрицания перед оператором -z, как показано ниже.
1 2 3 4 | if [ ! -z "$1" ] then echo "Получен 1-й аргумент" fi |
Заключение
В этой статье мы рассмотрели несколько простых способов легко проверить, существуют ли входные аргументы или нет. Лучшей практикой всегда является проверка существования входного аргумента перед его использованием, чтобы избежать ненужных сообщений об ошибках и предотвратить остановку скрипта. Вы можете использовать эти фрагменты в любой части вашего сценария оболочки. Они прекрасно работают во всех оболочках во всех дистрибутивах Linux.