Как к фону цепочка команды?

Понятый это:

Порт должен быть установлен на 22 для ssh, не моего порта пользователя.

http://en.wikipedia.org/wiki/List_of_well-known_ports_%28computing%29#Well-known_ports

15
26.08.2013, 16:56
2 ответа

cp a b && mv b c && rm a & корректно. & имеет более низкий приоритет, чем &&.Действительно? & имеет более низкий приоритет, чем что-нибудь кроме ; и новая строка: & находится в той же синтаксической категории как ;, причем различие - это ; выполняет список команд на переднем плане в то время как & выполнения это в фоновом режиме. Можно протестировать это на себя:

$ dash -c 'sleep 2 && echo waited & echo backgrounded'
backgrounded
$ waited

То же с pdksh, ksh93, удар, csh, tcsh.

Исключением является zsh, который является странно несовместимым. Это документируется в руководство:

Если подсписок завершается a &, &|, или &!, оболочка выполняет последний конвейер в нем в фоновом режиме и не ожидает его для окончания (отметьте различие от других оболочек, которые выполняют целый подсписок в фоновом режиме).

К сожалению, zsh ведет себя таким образом даже в sh или ksh режиме эмуляции. Чтобы удостовериться, что целая команда выполняется в фоновом режиме, помещает фигурные скобки или круглые скобки вокруг этого. Круглые скобки создают подоболочку, тогда как фигурные скобки не делают, но это не важно (за исключением микрооптимизации в некоторых оболочках), так как фоновая команда находится в подоболочке так или иначе.

{ cp a b && mv b c && rm a; } &
22
27.01.2020, 19:49
  • 1
    Ùnder, { ... ; } & сделайте ветвление на уровне текущего процесса, в то время как ( ... ) & сделайте ветвление от подоболочки... Результат - то же, но так или иначе существует тонкое различие. –  F. Hauri 26.08.2013, 19:34

можно поместить его в круглые скобки как (cp a b && mv b c && rm a )& включать целую цепочку.

14
27.01.2020, 19:49
  • 1
    И значительно это проясняет, что вся цепочка является фоном, даже кому-то, кто не мог бы знать правила того, как операторы являются ограниченным –  jackweirdy 26.08.2013, 18:49
  • 2
    Посмотрите на мой комментарий к ответу @Gilles, я думаю { ... ; } prefereable форма (путь). –  F. Hauri 26.08.2013, 19:38

Теги

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