试图让一个变量遇到一个长度不同的文本字符串。字符串中重要的部分是前几个字符。
var1=hello
if [ $var1 == hello ]; then
echo success
fi
Run Code Online (Sandbox Code Playgroud)
或者
var1=hello
if [ $var1 == h*o ]; then
echo success
fi
Run Code Online (Sandbox Code Playgroud)
输出:成功
但由于我关心前 3 个字符左右,这听起来合乎逻辑,但不起作用:
var1=hello
if [ $var1 == hel* ]; then
echo success
fi
Run Code Online (Sandbox Code Playgroud)
输出:-bash: [: 参数太多
由于我只关心前几个字符,我可以这样做:
var1=hello
if [ ${var1:0:3} == hel ]; then
echo success
fi
Run Code Online (Sandbox Code Playgroud)
那会起作用,但我正在寻找解释为什么我会收到该错误以及可能的更好的书面解决方案。