我是 UNIX 新手,目前正在编写一个 shell 脚本,我将在其中接收名称为 的文件,因此abc_123_date.zip
文件名将是abc_123_12312005
.我计划将该字符串存储在变量中然后使用它,而不是abc_123_*.zip
在命令中进行硬编码。例如:find
if [ -f ... ]
file_name=abc_123_*.zip
然后,在代码的其余部分中,我可以使用$file_name
实际字符串来代替需要该字符串的任何和所有操作。
存储该字符串的最佳方式是什么:
Option 1: file_name=abc_123_*.zip
Option 2: file_name="abc_123_*.zip"
哪个是更好的选择?为什么?
谢谢!
答案1
这取决于偏好,因为就文件名通配符而言,对于 shell 来说并不重要。无论引号是否存在,在常规(非数组)赋值中都不会发生文件名扩展和分词。
尽管在许多其他上下文中您需要引号,并且如果值包含空格或 shell 运算符(例如;
、等),(
您还需要在赋值中使用引号。>
因此,有些人可能也想在这里使用它们,只是为了在任何地方使用相同的自定义。
也可以看看:什么时候需要双引号?