Что делает амперсанд в начале строки в csh?
Кажется, что его игнорируют (без сообщения об ошибке), но почему?
Пример:
& echo 'hi there'
выполняет ожидаемые эхо без сообщения об ошибке.
Это фоновое «ничего». Амперсанд также работает как разделитель команд, например ;
.
Вы обнаружите, что
; echo 'hi there'
делает (в данном случае) по сути то же самое.
Однако они разные:
sleep 10 ; echo 'hi' & echo 'there'
sleep 10 ; echo 'hi' ; echo 'there'
Он ведет себя таким образом, потому что разработчики CSH решили, что с этим следует обращаться.
Похоже, что оболочки семейства csh ведут себя подобным образом, в то время как семейство оболочек Bourne выдает ошибку (поскольку это, скорее всего, ошибка ввода).