Консоль. Переменные окружения, аргументы командной строки. Консоль. Переменные окружения, аргументы командной строки. bash args

Консоль. Переменные окружения, аргументы командной строки.

Open in new window

Консоль. Переменные окружения, аргументы командной строки.

Передположим мы хотим создать bash скрипт для подсчета количества слов в файле.

Существует встренная команда, которая это делает.

wc filename

Пишем простой скрипт count.sh.

echo 'Counting...'

Делаем его исполняемым.

chmod +x count.sh

При выполнении с параметром

./count.sh log.txt

необходимо его забрать изнутри скрипта.

FILE=$1
echo "Counting...$FILE"
wc $FILE

Передача переменного количества параметров.

for FILE in "$@"
do
wc $FILE
done

Запуск.

./count.sh log.txt log2.txt log3.txt

Работа с именованными аргументами.

./count.sh -a myvar -b


while getopts "a:b" option
do
case "${option}" in
u) echo "user - $option |$OPTARG|";;
d) echo "dir - $option |$OPTIND|";;
esac
done

Тут надо упомянуть о специальных переменных, используемых getopts:

$OPTIND — хранит «внутренний индекс», по которому getopts определяет очередность выполнения опций;

$OPTARG — содержит аргумент, передаваемый опции;

$OPTERR — содержит код ошибки, обычно 1.

При использовании $OPTARG необходим ставить двоеточие после ключа после getopts.

Other topics