В Linux встроенная в bash команда eval
используется для выполнения аргументов в качестве команды оболочки.
Команда, являющаяся встроенной функцией bash, объединяет аргументы в одну строку, которую использует в качестве входных данных для оболочки и выполнения команд.
Содержание
Синтаксис
$ eval [аргумент ...]
Аргументы
Аргументы считываются и объединяются в одну команду. Затем эта команда считывается и выполняется оболочкой, а статус выхода возвращается как значение eval
. При запуске команды без аргументов она возвращает 0
.
Использование команды eval в Linux
Настроим переменную, включающую команду для отображения текущего времени в Торонто, Канада, Она, будет выглядеть так:
oleg@mobile:~:$ dt="TZ='Canada/Toronto' date"
oleg@mobile:~:$
Запустим переменную следующим образом:
oleg@mobile:~:$ eval $dt
Пт 21 июл 2023 08:16:19 Canada
oleg@mobile:~:$
В результате мы избавляемся от необходимости запоминать синтаксис команды date
и указывать часовой пояс.
Конечно, если вводить каждый раз команды в окне терминала, то вряд ли удастся сэкономить много времени или усилий. Поэтому целесообразнее создать псевдоним, который будет выполнять ту же работу. Созданный псевдоним можно будет сохранить в файле .bashrc
.
При создании сложной команды по частям — особенно в сценариях, которые должны собирать необходимые данные при запуске — использование eval
для запуска команды может значительно упростить ее выполнение.
Заключение
Команда eval
в Linux позволяет запускать содержимое переменных как команды и может быть очень полезной, особенно в сценариях.