Tôi đang cố gắng để so sánh các chuỗi trong bash. Tôi đã tìm thấy một câu trả lời về cách làm điều đó trên stackoverflow . Trong kịch bản tôi đang thử, tôi đang sử dụng mã được gửi bởi Adam trong câu hỏi được đề cập:
#!/bin/bash
string='My string';
if [[ "$string" == *My* ]]
then
echo "It's there!";
fi
needle='y s'
if [[ "$string" == *"$needle"* ]]; then
echo "haystack '$string' contains needle '$needle'"
fi
Tôi cũng đã thử cách tiếp cận từ ubuntuforums mà bạn có thể tìm thấy trong bài viết thứ 2
if [[ $var =~ regexp ]]; then
#do something
fi
Trong cả hai trường hợp tôi đều nhận được lỗi:
[[: not found
Tôi đang làm gì sai?
/bin/bash --version
in gì?
[
sẽ không hoạt động trong trường hợp này, vì nó không hỗ trợ các mẫu.