TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #264 10.1K
Привет. В прошлом посте про мы с тобой познакомились с $@ и $*. Сегодня разберем остатки этих прекрасных баксовых штуковин.

$1/$2/$3 - позиционные параметры переданные в скрипт
$# - количество переданных аргументов
$- - текущие флаги оболочки
$$ - идентификатор процесса PID
$_ - последний аргумент предыдущей команды
$IFS - разделение слов во входящих данных
$? - код возврата последней выполненной команды
$! - PID последнего запущенного в фоновом режиме процесса
$0 - имя исполняемого файла

Теперь на примерах


Позиционные параметры

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="," 
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


А если выполнить из скрипта, то оно покажет его имя.

Вроде всё упомянул, если что-то упустил, добавляйте в комментарии.

tags: #bash
—
💩 @bashdays
More from @bashdays
  1. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  2. Sep 24, 2026Post #1565
  3. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  4. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  5. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
  6. Sep 9, 2026Всем привет, с вами TagdTagd! Я тут вынужденно перешёл на MAX. Просто Telegram перестал ра…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →