2
我想根據this solution找到字符串中的子字符串。帶有if語句中變量的bash通配符
但由於某些原因,它不使用變量:
str="abcd";
substr="abc";
if [[ "${substr}"* == ${str} ]]
then
echo "CONTAINS!";
fi
我想根據this solution找到字符串中的子字符串。帶有if語句中變量的bash通配符
但由於某些原因,它不使用變量:
str="abcd";
substr="abc";
if [[ "${substr}"* == ${str} ]]
then
echo "CONTAINS!";
fi
參考手冊,section Conditional Constructs,你會讀,爲[[ ... ]]
的文檔:
當
==
和使用!=
運營商,將運營商右側的字符串視爲的模式,並根據以下Pattern Matching中所述的規則進行匹配,就好像extglob
shell選項已啓用。
(強調是我的)。
所以,你需要把你的glob模式到==
操作權:
if [[ $str == "$substr"* ]]; then
注意,左側不需要被引用,但部分右側的$substr
側需要被引用,在情況下,它包含了水珠字符,如*
,?
,[...]
,+(...)
等
SUBSTR必須是''==後 – 2015-02-11 09:26:32