Tôi đang cố gắng viết một kịch bản nhỏ đơn giản để truy vấn kết nối 3g và nếu kết nối đã bị ngắt, hãy kích hoạt kết nối lại.Tại sao so sánh chuỗi bash của tôi với hai chuỗi giống hệt nhau luôn sai?
Vấn đề của tôi là kiểm tra đầu ra của lệnh - hai chuỗi có vẻ bằng nhau không được đánh giá là bằng nhau. Tôi chắc rằng có một lỗi noob ở đây đâu đó!
#!/bin/bash
echo "Checking connection"
a="Not connected."
b=$(./sakis3g status --console)
if [[ "$a"!="$b" ]]; then
echo "Strings not equal:"
echo "$a"
echo "$b"
else
echo "Strings equal!!"
fi
Kết quả khi chạy:
[email protected]:~$ ./test_3g.sh
Checking connection
Strings not equal:
Not connected.
Not connected.
Khi chạy ./test_3g.sh | cat -A
:
[email protected]:~$ ./test_3g.sh | cat -A
Checking connection$
Strings not equal:$
Not connected.$
Not connected.$
Không có dòng mới không liên quan ở cuối, phải không? – Mehrdad
Thử './test_3g.sh | mèo -A'. Nếu 'cat' của bạn không hỗ trợ tùy chọn' -A', hãy thử './test_3g.sh | cat -v'. –
Tôi không nghĩ rằng có bất kỳ khoảng trắng không liên quan nào, nhưng sẽ rất vui khi được sửa chữa trên đó. @Keith, tôi đã thêm đầu ra từ đường ống vào cat -A cho câu hỏi. – jozzas