如何比较SHELL SCRIPT中的文件名



我有两个文件名

file1 = "my_random_forest_2021-08-11-094538.csv.zip"
file2 = "my_random_forest_2021-08-11-094538.csv.zip"
if [$file1 == $file2]; then
echo "matched"

在执行脚本时,它说:

test.sh: line 5: [my_random_forest_2021-08-11-094538.csv.zip: command not found

如何比较上述格式的文件名?

正确的语法应该是这样的

file1="my_random_forest_2021-08-11-094538.csv.zip"
file2="my_random_forest_2021-08-11-094538.csv.zip"
if [ $file1 = $file2 ] 
then
echo "matched"
fi

声明变量时没有空格。
变量和方括号之间应该有空格。
如果之后不需要;。如果你想在一行中添加if和then,你可以添加;
匹配将使用=而不是==
if应该以fi结束以关闭语句。

if [ "$file1" = "$file2" ]; then
echo "matched";
fi

在方括号和变量名之间缺少一个空格。如果没有空格,shell将解释"[my_random_forest_2021-08-11-094538.csv.zip"作为命令(不存在)

最新更新