我试图看看string1是否包含另一个string2。我是这样做的:
a=$(tempfile)
echo "eafg" > $a
if [[ $a == *e* ]]
then
echo "contains"
fi
现在我尝试查看字符串是否包含连字符:
a=$(tempfile)
echo "22:00:00-02:00" > $a
if [ $a == *-* ]
then
echo "contains"
fi
它不起作用。我也尝试过:
if [ $a == *--* ]
if [ $a == *---* ]
if [[ $a == *-* ]]
if [[ $a == *--* ]]
if [[ $a == *---* ]]
没有成功......
提前致谢
答案 0 :(得分:7)
以下代码会带来问题
a=$(tempfile)
echo "22:00:00-02:00" > $a
在这里,您要写入文件 $a
,然后尝试进行字符串比较。
尝试以下
a="22:00:00-02:00"
if [[ $a == *-* ]]
then
echo "contains"
fi
答案 1 :(得分:1)
您将字符串重定向到文件,因此在比较时从文件中读取。
变量a
包含文件的名称,而不包含内容。
说:
if [ $(<$a) == *-* ];
then
echo "contains"
fi
以下
if [[ $a == *e* ]];
then
echo "contains"
fi
为你工作,因为保存文件名的变量包含字母e
。