Tôi không nhất thiết muốn câu trả lời nhưng nếu ai đó có thể chỉ cho tôi một số tài liệu hoặc ví dụ. Tôi muốn tìm ra nó.
Khi tôi chạy tập lệnh, tôi nhận được một lỗi:
Lỗi cú pháp gần mã thông báo bất ngờ
fi
Tôi đã suy luận rằng vấn đề của tôi nằm trong if
tuyên bố của mình bằng cách đưa ra if
nhận xét của mình và thêm echo "$NAME"
phần hiển thị tên trong /etc/
.
Khi tôi thực hiện thay đổi, loại bỏ các #
từ if
và fi
và thêm #
vào wc -c "$NAME"
, tôi nhận được lỗi cú pháp tôi liệt kê ở trên. Tôi đã thêm vào ;
giữa ]
sau đó. Tôi cũng đã chuyển then
sang dòng tiếp theo mà không có độ phân giải.
#!/bin/bash
for NAME in /etc/*
do
if [ -r "$NAME" -af "$NAME" ] then
wc -c "$NAME"
fi
done
-af
phải làm?
-a
là dư thừa vì điều kiện đã được bao gồm trong -f
. --- Dù sao, nhiều điều kiện trong [ ]
(lệnh này cũng có sẵn vì test
) phải được tham gia bằng cách sử dụng các toán tử logic như -a
(và) hoặc -o
(hoặc) nhưng như đã đề xuất trong câu trả lời bên dưới, tốt hơn là sử dụng nhiều lệnh [ ]
( test
) và tham gia họ sử dụng các toán tử shell như &&
hoặc ||
.