bash -c 명령으로 globbing for 루프를 사용하는 방법은 무엇입니까?

bash -c 명령으로 globbing for 루프를 사용하는 방법은 무엇입니까?

bash -c시간을 측정할 수 있도록 for 루프를 실행하려고 합니다 . 이 코드는 매번 23을 씁니다. 숫자를 반복하도록 하려면 어떻게 해야 합니까?

time bash -c "for i in {0..23}; do echo $i & done"

이 코드는 작동하지만 전체 작업 시간을 측정해야 합니다.

for i in {0..23}; do echo $i & done

echo명령은 단순화를 위한 것입니다. 나는 정말로 실행하고 싶기 dd때문에 &를 사용하여 프로세스를 백그라운드에 두었습니다.

답변1

두 가지 질문이 있습니다.

time bash -c "for i in {0..23}; do echo $i & done"

즉시 확장 되므로 예상대로 작동하지 않습니다 $i. 작은따옴표를 사용해야 합니다.

time bash -c 'for i in {0..23}; do echo $i & done'

모든 백그라운드 작업을 기다리 려면 time다음을 사용할 수 있습니다 wait.

time bash -c 'for i in {0..23}; do sleep $i & done; wait'

이로 인해 셸은 모든 작업이 완료될 때까지 기다리게 되어 time모든 작업에 소요되는 시간을 측정합니다.

관련 정보