В чем смысл использования точки перед /home?

Для периодического пробуждения tmux в сеансе tmux можно выполнить следующее:

while sleep 2h; do echo alive; done

Поскольку tmux обрабатывает его терминалы сессий в своем собственном коде, это разбудит его для обработки вывода.

2
28.02.2016, 21:55
2 ответа

. , который вы найдете как часть имен путей, не имеет ничего общего с . команда.

. - это специальное имя файла, которое существует в каждом каталоге и обозначает текущий каталог. Итак, ./ script.ksh обозначает файл script.ksh в текущем каталоге, так же как ././ script.ksh и . ./././script.ksh (не имеет значения, сколько раз вы просите преобразователь путей перейти от текущего каталога к себе самому себе ...). Среди других причин мы используем ./ script.ksh вместо простого script.ksh , чтобы прояснить, что мы имеем в виду путь, а не команду оболочки.

. также является встроенной оболочкой, которая заставляет оболочку передавать содержимое файла, переданного ей в качестве аргумента в текущую среду оболочки, а не выполнять его как внешнюю команду. . Команда также может записываться в виде source во многих оболочках (это псевдоним совместимости, полученный из наследия csh ). Обратите внимание, что поскольку это команда оболочки (состоящая из одного символа пунктуации, например : ), за ней всегда следует пробел.

8
27.01.2020, 21:51

В данном случае . указывает оболочке выполнить следующий сценарий (в данном случае / home / sqllib / db2profile ) в контексте текущего процесса оболочки вместо запуска нового процесса оболочки для запуска сценария.

Причина в том, что сценарий, имя которого следует за . , вероятно, создает переменные среды, которые потребуются другим программам. Без . перед именем сценария оболочки будет запущен новый процесс для запуска сценария, и, таким образом, любые переменные среды, созданные сценарием, будут потеряны, когда сценарий завершится и его процесс завершится. Поставив . перед сценарием сценарий запускается текущим процессом оболочки, так что любые переменные среды, которые создаются сценарием, создаются в контексте текущей оболочки, и, таким образом, эти переменные среды доступны для сценариев и программ, которые выполнить позже, например, команду db2 в следующей строке.

0
27.01.2020, 21:51

Теги

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