Я понимаю | выводит вывод первой команды в stdin второй команды. Как & связаны два процесса?В чем разница между & и | в Linux?
ответ
Одиночный амперметр (&)
используется для фонового рисунка. Это заставляет команду запускаться в фоновом режиме.
Кроме того, из man bash
:
Если команда завершается оператором & управления, оболочка выполняет команду в фоновом режиме в подоболочки. Оболочка не не ждать завершения работы команды, и возвращается статус 0.
Так что, если вы пишете что-то вроде этого:
find -name hello &
Это заставит команду find
быть раздвоенным и бежать в фоновом режиме
В вашем случае один амперметр & никак не связан с этим процессом.
Вы, вероятно, ищет
command1 && command2
Вероятно, вы хотите знать о &&
не &
(что для выполнения команды в фоновом режиме)
Эта команда:
command1 | command2
Средства пропускают выход команды 1 в качестве входного сигнала (stdin) команды2
Но в этой команде:
command1 && command2
Средства выполнения command2 ТОЛЬКО если command1 успешно
&
не связаны два процесса в любой форме; он запускает процесс в «фоновом режиме», так что запущенная вами оболочка продолжает свою работу, не дожидаясь завершения процесса, как обычно.
Возможно, вы думаете о &&
. Командная строка
command 1 && command 2
выполняет первый command 1
, и если он успешен (выходы с кодом состояния 0) он выполняет command 2
. Состояние выхода для соединения - это состояние выхода первой команды, если оно не выполнено, в противном случае статус выхода равен 2.
Например, следующую команду можно использовать для установки программного обеспечения Unix из источника, но только если это успешно сконфигурированы, скомпилированы и все тесты.
./configure && make && make test && make install
- 1. В чем разница между ~/и ~ в linux?
- 2. В чем разница между Linux и Unix?
- 3. Разница между '~' и '/' в linux
- 4. В чем разница между версиями ядра Linux?
- 5. В чем разница между tty и vty в linux
- 6. В чем разница между заданиями и командами ps в Linux?
- 7. В чем разница между pthread_mutex_lock и ядром mutex_lock в linux?
- 8. В чем разница между dnxcore50 в Windows и Linux?
- 9. В чем разница между .cfg и .conf в Linux?
- 10. В чем разница между ~ directory_name и/directory_name в linux
- 11. В чем разница между ls и «exec ls» в Linux
- 12. В чем разница между IFA_LOCAL и IFA_ADDRESS в rtnetlink (Linux)
- 13. В чем разница между dm и md в ядре Linux?
- 14. В чем разница между «и»?
- 15. В чем разница между `{}` и `[]`?
- 16. В чем разница между == и ===?
- 17. В чем разница между «+» и «\ +»?
- 18. В чем разница между + = и = +?
- 19. В чем разница между/* ... */и/** ... */
- 20. В чем разница между: и +:
- 21. В чем разница между $ {} и # {}
- 22. В чем разница между $ _. и $ _
- 23. В чем разница между = и: =
- 24. В чем разница между && и &?
- 25. В чем разница между $ {} и # {}?
- 26. В чем разница между + и%?
- 27. В чем разница между + = и = +
- 28. В чем разница между # {} $ {} и% {}?
- 29. В чем разница между «» и «»?
- 30. В чем разница между ['#'] и [. = '#']?
Вопрос был о '&', а не '&&', хотя возможно, что OP означает '&&'. – pfnuesel
@pfnuesel: почти наверняка из формулировки OP, хотя OP писал '&', но на самом деле он запрашивал '&&' – anubhava
Тогда укажите это в своем ответе. – pfnuesel