Когда используется команда kill -CONT, где процесс возобновится?

Каналы включают подоболочки, часть которых не запускается в родительской оболочке и, таким образом, не может влиять на рабочий каталог этого процесса родительской оболочки. Так ведет себя ЗШ:

% cd /tmp
% cd /var/tmp | tail
% pwd
/tmp
% echo foo | cd /var/tmp
(pwd now: /var/tmp)
% cd /tmp
% echo foo | cd /var/tmp | echo bar
bar
% pwd
/tmp
% 

Обратите внимание, что каталог изменился только тогда, когда cdбыла последней командой в конвейере; это было запущено в самой родительской оболочке и, таким образом, могло изменить рабочий каталог этого процесса.

Полезное использование этой функции обычно включает явную подоболочку и выполнение команд в ней:

dowork | ( cd elsewhere && domorework ) | andyetmore

также обязательно проверьте вызов cdна наличие ошибок, а не предполагайте, что он сработал, если только вы не хотите, чтобы вывод rsyncраспылялся по всему /, или другой подобный гипотетический беспорядок...

1
11.06.2020, 17:52
0 ответов

Теги

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