Как вы знаете, знак $ в bash используется для обозначения переменных.
Это тоже переменная, но другая.
$0 – это одна из специальных переменных, которые есть в bash, и она используется для вывода имени файла скрипта, который в данный момент выполняется.
Переменная $0 может быть использована в Linux двумя способами:
- Использовать $0 для поиска оболочки входа в систему
- Использовать $0 для вывода имени выполняемого скрипта.
Итак, давайте начнем с первого.
Поиск оболочки, в которую вы вошли в систему, с помощью $0
Когда $0 не используется в скрипте, она хранит информацию о том, какую оболочку вы используете в данный момент.
Если вы выведете значение $0, система покажет вам, в какой оболочке вы сейчас вошли в систему.
Например, здесь я вошел в bash в одном окне, а в другом я использовал zsh, и печать значения $0 с помощью команды echo показала имена вошедших оболочек:
Теперь перейдем к тому, как ее можно использовать в скриптах.
Использование $0 в скриптах shell
Чтобы использовать переменную $0 в скрипте, достаточно использовать простой оператор echo с этой переменной, и он выведет имя файла.
Например, здесь я буду использовать простой скрипт hello world:
#!/bin/bash
echo "Hello World"
Если мне нужно использовать здесь переменную $0, все, что мне нужно сделать, это добавить следующую строку в конце:
echo $0
Чтобы сделать его более человекочитаемым, вы также можете использовать что-то вроде этого:
echo "The name of the script is: " $0
Таким образом, конечный результат будет выглядеть следующим образом:
#!/bin/bash
echo "Hello World"
echo "The name of the script is: " $0
А это вывод, когда я выполнил скрипт:
Небольшая, но эффективная переменная. Не так ли?
Другие специальные переменные в Bash
Если эта переменная показалась вам увлекательной, в bash есть еще больше специальных переменных, которые можно использовать в различных скриптах.
И если вы хотите узнать о них больше, у нас есть специальные руководства для этого:
- 🌐 Шпаргалка по скриптам Bash
- 🐧 Bash скриптинг – парсинг аргументов в скриптах Bash с помощью getopts
- 📜 Bash скрипт для копирования всех файлов с той же структурой каталогов
- Узнайте, как устанавливать переменные $PATH в Linux