UNIX KSH - 将带有通配符的字符串分配给变量时使用双引号还是不使用引号?

UNIX KSH - 将带有通配符的字符串分配给变量时使用双引号还是不使用引号?

我是 UNIX 新手,目前正在编写一个 shell 脚本,我将在其中接收名称为 的文件,因此abc_123_date.zip文件名将是abc_123_12312005.我计划将该字符串存储在变量中然后使用它,而不是abc_123_*.zip在命令中进行硬编码。例如:findif [ -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 运算符(例如;、等),(您还需要在赋值中使用引号。>因此,有些人可能也想在这里使用它们,只是为了在任何地方使用相同的自定义。

也可以看看:什么时候需要双引号?

相关内容