Почему запуск `echo $0 `в REPL bash возвращает только имя исполняемого файла bash, а в zsh возвращает абсолютный путь к исполняемому файлу zsh?

Вы можете попробовать настроить задание cron для поиска ошибок, выполните следующие действия:

  1. Создайте сценарий для последних строк из файла ошибок, чтобы получить последнюю ошибку.
  2. Затем направьте вывод с сообщением «Ошибка».
  3. Добавить скрипт в cron (*/5****PATH _TO _SCRIPT)
0
05.07.2020, 03:07
1 ответ

То, что вы получите в $0, зависит от того, как была вызвана оболочка. Если вы начнете с bash, это будет bash. Если вы начнете с /bin/bash, это будет /bin/bash. То же самое для zsh.

$ bash
$ echo $0
bash
$ exit
exit
$ /bin/bash
$ echo $0
/bin/bash
$ exit
exit
$ /bin/../bin/../bin/bash
$ echo $0
/bin/../bin/../bin/bash
$ exit
exit

$ zsh
$ echo $0
zsh
$ exit
$ /bin/zsh
$ echo $0
/bin/zsh
$ exit
$ /bin/../bin/../bin/zsh
$ echo $0
/bin/../bin/../bin/zsh
$ exit
2
18.03.2021, 23:22

Теги

Похожие вопросы