Понятый это:
Порт должен быть установлен на 22 для ssh, не моего порта пользователя.
http://en.wikipedia.org/wiki/List_of_well-known_ports_%28computing%29#Well-known_ports
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; } &
можно поместить его в круглые скобки как (cp a b && mv b c && rm a )&
включать целую цепочку.
{ ... ; }
prefereable форма (путь).
– F. Hauri
26.08.2013, 19:38
{ ... ; } &
сделайте ветвление на уровне текущего процесса, в то время как( ... ) &
сделайте ветвление от подоболочки... Результат - то же, но так или иначе существует тонкое различие. – F. Hauri 26.08.2013, 19:34