Каково поведение & operator

Я пытаюсь связать команды в linux, я использую дистрибутив ubuntu 14.04. Цель создания каталога и перехода в этот каталог. Обычно мы делаем это

mkdir foldername cd foldername 

Отлично, когда вы пробовали это

 mkdir gates cd gates 

работает, как ожидалось. Но все работает не так, как ожидалось,

mkdir gates & cd gates , не работает, ошибка не является no such file or directory . При нажатии enter оно создаст ворота каталога на следующем шаге. Почему это происходит? Но ls & mkdir gates работают нормально

One Solution collect form web for “Каково поведение & operator”

& является оператором фоновой обработки оболочки ; он помещает команду, предшествующую ей в фоновом режиме, и продолжает.

Так

 mkdir gates & cd gates 

запускает mkdir gates в фоновом режиме и сразу же запускает cd gates , который пытается изменить каталог до его создания (и не работает).

 ls & mkdir gates 

работает, потому что mkdir gates не зависят от чего-либо; все, что происходит, это то, что ls запускается в фоновом режиме, выводя список каталогов, в то время как mkdir создает каталог gates .

Вы, вероятно, ищете

 mkdir gates && cd gates 

который изменит каталог только в том случае, если mkdir преуспеет; вы можете предпочесть

 mkdir -p gates && cd gates 

который не будет работать, если каталог уже существует.

Linux и Unix - лучшая ОС в мире.