2016-03-07 24 views
5

Sau đây là từ /etc/init.d/functions trên RHEL. Tôi đang cố gắng tìm ra những gì các chức năng __pids_var_run() hiện khi tôi đi qua vòng lặp này trong khi.Dấu ngoặc nhọn bên trái sau vòng lặp while có nghĩa là gì trong bash?

  while : ; do 
        read line 
        [ -z "$line" ] && break 
        for p in $line ; do 
          if [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] ; then 
            if [ -n "$binary" ] ; then 
              local b=$(readlink /proc/$p/exe | sed -e 's/\s*(deleted)$//') 
              [ "$b" != "$binary" ] && continue 
            fi 
            pid="$pid $p" 
          fi 
        done 
      done < "$pid_file" 

Ai đó có thể giải thích những gì while : ; do ; ... done < "$pid_file" làm gì? Cụ thể hơn, phần cuối cùng sau done, như phần còn lại của nó nhiều hay ít có ý nghĩa.

+0

Điều đó có nghĩa giống như sau khi có bất kỳ lệnh nào. –

Trả lời

4

Điều đó có nghĩa là bất kỳ lệnh nào trong vòng lặp đọc nội dung nào đó từ stdin sẽ đọc từ tệp đã cho (thay vì bàn phím chẳng hạn).

Trong trường hợp này đặc biệt, vòng lặp sử dụng read line để đọc một dòng đơn từ stdin, vì vậy khi bạn chuyển hướng từ $pidfile nó có hiệu quả đọc từng dòng tệp.

Để đọc thêm về chuyển hướng, dưới đây là Illustrated redirection tutorial được đề xuất bởi this Bash Guide bởi LhunathGreyCat.

+3

Trong phương tiện để lấy stdin từ tập tin. Nó không có gì để làm với bàn phím. Thông thường, stdin được kết hợp với một bàn phím, nhưng nó là một sai lầm để conflate cả hai. –

+0

Chắc chắn, tôi không biết ở mức độ nào để giải thích. – alfC

+0

Về mặt kỹ thuật, nó chỉ định đầu vào tiêu chuẩn cho chính lệnh phức hợp 'while', từ đó bất kỳ lệnh nào trong cơ thể thừa hưởng đầu vào tiêu chuẩn của riêng nó. – chepner

3

Tôi thấy rằng quesiton này đã được trả lời (Tôi không thể bình luận vì tôi đã làm một tiền thưởng), nhưng tôi nghĩ bạn nên kiểm tra trang web này khi bạn có cơ hội:

http://mywiki.wooledge.org/BashFAQ/001

anh chàng này (hoặc gal) thực sự đi sâu vào cú pháp thích hợp và không đúng với các ví dụ.

Các vấn đề liên quan