Назад | Перейти на главную страницу

Амперсанд в начале строки в csh

Что делает амперсанд в начале строки в csh?

Кажется, что его игнорируют (без сообщения об ошибке), но почему?

Пример:

& echo 'hi there'

выполняет ожидаемые эхо без сообщения об ошибке.

Это фоновое «ничего». Амперсанд также работает как разделитель команд, например ;.

Вы обнаружите, что

; echo 'hi there'

делает (в данном случае) по сути то же самое.

Однако они разные:

sleep 10 ; echo 'hi' & echo 'there'
sleep 10 ; echo 'hi' ; echo 'there'

Он ведет себя таким образом, потому что разработчики CSH решили, что с этим следует обращаться.

Похоже, что оболочки семейства csh ведут себя подобным образом, в то время как семейство оболочек Bourne выдает ошибку (поскольку это, скорее всего, ошибка ввода).