여러 명령을 병렬로 실행하고 싶지만 아래 코드 조각이 작동하지 않는 이유를 모르겠습니다.
#!/bin/bash
( ping 8.8.8.8 )
( ping 192.168.0.1 )
두 번째 ping 명령을 완전히 무시합니다. 왜 이런 일이 발생합니까?
편집: 좋아요, 이제 실행을 통해 병렬로 실행할 수 있다는 것을 알았습니다 &
.
ping 8.8.8.8 & ping 192.168.0.1
그런데 위의 코드 조각이 작동하지 않는 이유는 무엇입니까?
답변1
기본적으로 하위 쉘은 분기되지 않습니다. 또한 &
첫 번째 하위 쉘이 완료될 때까지 기다리지 않고 두 번째 하위 쉘을 실행하려면 백그라운드로 보내기를 사용해야 합니다.
예를 들어
ping 8.8.8.8 & ping 192.168.0.1