Tôi có một tập lệnh đơn giản để kiểm tra xem trang web có chứa một chuỗi được chỉ định hay không. Có vẻ như:Chuỗi Bash (đầu ra lệnh) kiểm tra bình đẳng
#!/bin/bash
res=`curl -s "http://www.google.com" | grep "foo bar foo bar" | wc -l`
if [[ $res == "0" ]]; then
echo "OK"
else
echo "Wrong"
fi
Như bạn có thể thấy, tôi đang tìm cách "OK" nhưng bị "Sai".
Có vấn đề gì với nó?
Nếu tôi sử dụng nếu [$ res == "0"], nó hoạt động. Nếu tôi chỉ sử dụng res = "0" thay vì res = curl...
, nó cũng có thể có được kết quả mong muốn.
Tại sao có những khác biệt này?
Cảm ơn, đó là giải pháp tốt. Nhưng, như câu hỏi của tôi, tôi chỉ muốn biết tại sao [[$ res == "0"]] không hoạt động trong trường hợp này, để tôi có thể tránh mắc sai lầm tương tự trong tương lai – kliu
bạn thấy gì? -c <<< "$ res" '? Có các ký tự khoảng trống thừa nào không? –
Có, bạn nói đúng, có khoảng trắng ở đầu ra wc. Cảm ơn. – kliu