Привет. В прошлом посте мы с тобой познакомились с $@ и $*. Сегодня разберем остатки этих прекрасных баксовых штуковин.
Теперь на примерах
Позиционные параметры
echo "Первый аргумент: $1"
echo "Второй аргумент: $2"
echo "Третий аргумент: $3"
./script.sh one two three
Выведет:
Первый аргумент: one
Второй аргумент: two
Третий аргумент: three
Количество переданных аргументов
echo "Количество аргументов: $#"
./script.sh one two three
Выведет:
Количество аргументов: 3
Текущие флаги оболочки
echo "Текущие флаги оболочки: $-"
Выведет:
Текущие флаги оболочки: himBHs
Про эти флаги можешь почитать в этом посте.
Идентификатор процесса PID
echo "PID текущей оболочки: $$"
Выведет:
PID текущей оболочки: 362748
Последний аргумент предыдущей команды
echo "Hello BashDays"
echo "Welcome Home"
echo "Последний аргумент предыдущей команды: $_"
Выведет:
Последний аргумент предыдущей команды: Welcome Home
$IFS это пробел, но можно заменить на что-то другое.Разделение слов во входящих данных
IFS=","
read -ra words <<< "hello,bashdays,how,are,you"
for word in "${words[@]}"; do
echo "Слово: $word"
done
По умолчанию у $IFS это пробел, но можно заменить на что-то другое. Тут указываем, что разделитель у нас будет «запятая».
Вывод будет таким:
Слово: hello
Слово: bashdays
Слово: how
Слово: are
Слово: you
Код возврата последней выполненной команды
ls non_existent_file.txt
echo "Код возврата: $?"
Выведется:
ls: cannot access 'non_existent_file.txt': No such file or directory
Код возврата: 2
PID последнего запущенного в фоновом режиме процесса
sleep 10 &
echo "PID последнего запущенного в фоновом режиме: $!"
Выведет:
PID последнего запущенного в фоновом режиме: 362786
Имя исполняемого файла
echo "Имя этого скрипта: $0"
Выведет:
Имя этого скрипта: -bash
А если выполнить из скрипта, то оно покажет его имя.
Вроде всё упомянул, если что-то упустил, добавляйте в комментарии.








Комментарии