Очень часто sh-скрипту нужно передать входные параметры. Например, ./show_args.sh 1 2 3 4 5 6 7. Эти входные параметры можно использовать в качестве значений переменных. Посмотрите на пример. Тут переданные параметры выводятся в одну строку.
#!/bin/bash
# Как вывести циклом список аргументов переданных скрипту sh BASH
index=1
echo "Список аргументов в переменной \"\$*\":"
# $* воспринимает все аргументы как одну строку.
for arg in "$*" # Работает некорректно, если "$*" не ограничена кавычками.
do
echo "Аргумент #$index = $arg"
let "index+=1"
done
echo "Полный список аргументов выглядит как одна строка."
exit 0
# вывод:
#Список аргументов в переменной "$*":
#Аргумент #1 = 1 2 3 4 5 6 7
#Полный список аргументов выглядит как одна строка.
Посмотрите на второй пример. Скрипт показывает список переданных аргументов построчно.
#!/bin/bash
index=1
echo "Список аргументов в переменной \"\$@\":"
# $@ воспринимает аргументы как отдельные строки (слова).
for arg in "$@"
do
echo "Аргумент #$index = $arg"
let "index+=1"
done
echo "Список аргументов выглядит как набор различных строк (слов)."
exit 0
# вывод:
#Список аргументов в переменной "$@":
#Аргумент #1 = 1
#Аргумент #2 = 2
#Аргумент #3 = 3
#Аргумент #4 = 4
#Аргумент #5 = 5
#Аргумент #6 = 6
#Аргумент #7 = 7
#Список аргументов выглядит как набор различных строк (слов).
Хочу показать вам как проверить количество входных параметров у sh-скрипта args BASH. В этой статье вы увидите как при помощи условия if-else можно проверить количество переданных параметров.