7

我正在尝试查看 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 == *---* ]]

没有成功...

提前致谢

4

2 回答 2

8

以下代码带来问题

a=$(tempfile)    
echo "22:00:00-02:00" > $a

在这里,您正在写入文件 $a,然后尝试进行字符串比较。


尝试关注

a="22:00:00-02:00"

if [[ $a == *-* ]]
then
   echo "contains"
fi
于 2013-11-22T11:05:08.367 回答
1

您将字符串重定向到文件,因此在比较时从文件中读取它。

该变量a包含文件的名称而不是内容。

说:

if [ $(<$a) == *-* ];
then
   echo "contains"
fi

以下

if [[ $a == *e* ]];
then
   echo "contains"
fi

为您工作,因为保存文件名的变量包含字母e.

于 2013-11-22T11:04:05.960 回答