Tôi có một tập lệnh xuất ra khoảng 10 dòng mỗi khi nó chạy. Nội dung của các dòng này thay đổi.Có thể đường ống vào câu lệnh if không?
Tôi thực sự muốn có thể grep
ở đầu ra và thực hiện những việc khác nhau tùy thuộc vào đầu ra.
Trong giả này là những gì tôi muốn làm
cat /etc/password | \\
if [ grep "root" $STDOUT ]; then
echo "root is found"
elif [ grep "nobody" $STDOUT ]; then
echo "nobody is found"
fi
Ở đây có tôi đã sử dụng cat /etc/password
làm ví dụ, nhưng nó phải được thay thế bằng các kịch bản của tôi đề cập ở trên.
Vấn đề là, làm cách nào để giữ đầu ra từ cat /etc/password
trong các điều kiện if
/elif
?
lẽ awk hoặc perl là phù hợp hơn cho nhiệm vụ của bạn .. – bew
không sử dụng 'cat' nếu ý định không hiển thị hoặc ghép nối. Ở đây bạn chỉ có thể cung cấp cho các tập tin trong dòng lệnh grep, bởi vì nó được chấp nhận, nếu không bạn chỉ có thể chuyển hướng tập tin ('<'). – Benoit
Bạn không cần tiếp tục dòng sau '|', '&&' và '||' –