Công dụng của lệnh wait trong linux là gì?

Đạt đang tìm một đoạn code để countdown, thì tìm thấy code này khá hay. Tuy nhiên Đạt không hiểu lý do tại sao mình lại cần wait sau khi sleep 1 nhỉ?

countdown()
{
  countdown=${1:-60}   ## 60-second default
  w=${#countdown}
  while [ $countdown -gt 0 ]
  do
    sleep 1 &
    printf "  %${w}d\r" "$countdown"
    countdown=$(( $countdown - 1 ))
    wait
  done
  printf "\a"
} 2>/dev/null

sleep 1 & chạy lệnh sleep trong background, với process là process con của process hiện tại. wait sẽ khiến process hiện tại chờ các process con của nó hoàn thành rồi mới kết thúc.

1 Like

Nếu vậy thì chạy sleep 1 có khác gì sơ với sleep 1&wait không?

Có chứ, nếu không có & thì sleep chạy xong 2 câu lệnh tiếp theo mới chạy. Đạt thử thay là sleep 10 rồi chạy 2 trường hợp sẽ rõ.

1 Like

Ok, thank @cuonglm để thử xem. :smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?