String Bash:字符串包含连字符

String Bash:字符串包含连字符,string,bash,contains,hyphen,String,Bash,Contains,Hyphen,我正在尝试查看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 [ $

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


提前感谢

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

变量
a
包含文件名,而不是内容

说:


对您有效,因为包含文件名的变量包含以下代码段中的字母
e

会带来问题

a=$(tempfile)    
echo "22:00:00-02:00" > $a
在这里,您正在写入一个文件
$a
,然后尝试进行字符串比较


试着跟随

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

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

您的
$a
似乎是一个文件名,而不是文件内容。所以你的代码有点混乱。谢谢,这给了我解决问题的方法。@user1064285-Hmm。。不确定这是否给了你解决方案,因为你已经接受了另一个答案:)祝你好运。
a=$(tempfile)    
echo "22:00:00-02:00" > $a
a="22:00:00-02:00"

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