30/09/2018, 16:34

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
" "$countdown"
    countdown=$(( $countdown - 1 ))
    wait
  done
  printf "a"
} 2>/dev/null
LE Manh Cuong viết 18:37 ngày 30/09/2018

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.

Nguyễn Minh Dũng viết 18:38 ngày 30/09/2018

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

LE Manh Cuong viết 18:42 ngày 30/09/2018

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õ.

Nguyễn Minh Dũng viết 18:46 ngày 30/09/2018

Ok, thank @cuonglm để thử xem.

Bài liên quan
0