String 如何确定字符串是否是另一个字符串的子字符串

String 如何确定字符串是否是另一个字符串的子字符串,string,bash,string-comparison,String,Bash,String Comparison,我试图确定包含许多文件路径的大字符串中是否存在子字符串(文件名)。这是我的代码,只是不工作(打印“不包含”)。我试着比较=~,不同的引号用法。这似乎没什么用。您是否看到我的代码中有问题 #!/bin/bash text="/path/to/some/file1-2-3.json /another/path/to/file4-5-6.json" my_file="file1-2-3.json" if [[ *"$my_file"* =

我试图确定包含许多文件路径的大字符串中是否存在子字符串(文件名)。这是我的代码,只是不工作(打印“不包含”)。我试着比较
=~
,不同的引号用法。这似乎没什么用。您是否看到我的代码中有问题

#!/bin/bash

text="/path/to/some/file1-2-3.json /another/path/to/file4-5-6.json"
my_file="file1-2-3.json"

if [[ *"$my_file"* == "$text" ]]; then
    echo "Contain"
else
    echo "Does not contain"
fi

如果将字符串反转,则该选项有效:

$ more script.sh
#!/bin/bash

text="/path/to/some/file1-2-3.json /another/path/to/file4-5-6.json"
my_file="file1-2-3.json"

if [[ "$text" == *"$my_file"* ]]; then
        echo "Contain"
else
        echo "Does not contain"
fi
$ ./script.sh
Contain
$
表单
manbash

当==和!=使用运算符时,运算符右侧的字符串为 考虑模式,并根据模式匹配下描述的规则进行匹配


我刚刚发现,我只是在写我自己的问题。多么讨厌的虫子-四氢呋喃