我正在尝试使用以下命令创建文件夹:
mkdir $(date +%Y-%m-%d %H%M)
因此,您会看到两者之间有一个空格,我知道这不是最佳做法,但我希望它能够发挥作用。
我曾尝试逃离空间,使用引号,但似乎没有任何作用,这让我发疯。
请问有什么想法吗?
答案1
您需要在整个$(...)
命令替换周围加上引号(必须是“双引号”),以及在格式字符串参数周围加上引号date
(“双引号”或“单引号”都可以):
mkdir "$(date '+%Y-%m-%d %H%M')"
如果您不引用包含空格的参数(包括结果中可能包含空格的命令替换),它们将被 shell 进行分词,最终您会得到多个单独的参数而不是一个,这些参数将由命令以不同的方式解释。
“双”引号和“单”引号之间的主要区别在于,您仍然可以在双引号内进行变量扩展和命令替换,而单引号会阻止任何类型的评估并使 shell 按原样处理字符串。