我有一个代码
if ["a1 a2" = "a*"]
then
echo match
else
echo "a*"
fi
我输入了,返回语句是
A *
main.ksh [3]:[a1 a2:找不到[没有这样的文件或目录]
我想知道为什么会这样,我认为if语句只比较了字符串。它与文件和目录有什么关系?
答案 0 :(得分:1)
间距问题,你需要做
if [ "a1 a2" = "a*" ]
否则至少"a1
将被视为测试运算符的一部分。
同样要进行正则表达式匹配,您需要执行类似
的操作 if [[ "a1 a2" =~ "a"* ]]
但请注意,匹配a
后跟字符串中任意位置的0或更多字符,这可能不是您想要的。
答案 1 :(得分:0)
你可能想要这样的东西:
if [ "a1 a2" = "`echo a*`" ]
...
检查工作目录中是否正好有两个文件(a1
和a2
),前缀为a
。