我知道如果你用双引号将一个变量(包含一个文件名)括起来,它会扩展$
,*
s 和反引号('
)。例如cmp "$file1" "$file2"
,如果两个文件*
的开头都包含 s 或其他任何“正常”的东西,那就没问题了。但是,如果文件在开头有任意数量的破折号,它将不起作用。相反,它将尝试执行 - 的字面意思,将其视为一个选项。你如何解决这个问题?
这将起作用:
var1=*file.txt
var2=*file2.txt
cmp "$var1" "$var2"
但
var1=-file.txt
cmp "$var1" "$var2"
会说 - 是一个无法识别的选项。有任何想法吗?