Date 如何将变量传递给mv命令,以使用空格和变量'重命名文件文本;s bash(.sh)文件中的文本
我创建一个变量,并在其中存储日期、日期和时间:Date 如何将变量传递给mv命令,以使用空格和变量'重命名文件文本;s bash(.sh)文件中的文本,date,variables,unix,terminal,mv,Date,Variables,Unix,Terminal,Mv,我创建一个变量,并在其中存储日期、日期和时间: NOW=$(date "+%a %d/%m/%Y% %H:%M") 然后我想将$NOW传递给mv命令以重命名文件 e、 g.创建名为a.txt的文件,文件标题和当前日期: printf "File Report (" > ~/Desktop/a.txt echo $NOW"):\n" >> ~/Desktop/a.txt 然后,我尝试使用名称中包含的变量($NOW)重命名该文件: mv ~/Desktop/a.txt ~/
NOW=$(date "+%a %d/%m/%Y% %H:%M")
然后我想将$NOW
传递给mv
命令以重命名文件
e、 g.创建名为a.txt的文件,文件标题和当前日期:
printf "File Report (" > ~/Desktop/a.txt
echo $NOW"):\n" >> ~/Desktop/a.txt
然后,我尝试使用名称中包含的变量($NOW)重命名该文件:
mv ~/Desktop/a.txt ~/Desktop/'File Report $NOW'.txt
最后一行应该是什么?我也尝试了这两种选择
mv ~/Desktop/a.txt ~/Desktop/'File Report' $NOW.txt
&
假设有一个类似于Bourne的shell(比如bash),变量替换不会发生在单引号内。您需要使用双引号:
mv ~/Desktop/a.txt "${HOME}/Desktop/File Report ${NOW}.txt"
(我不确定是否需要卷发背带,但它们不会受伤)
您还需要更改date命令以避免使用斜杠。例如:
NOW="$(date '+%a %d-%m-%Y% %H:%M')"
它保存在bash脚本中。我这样做了,但是它根本没有重命名文件。它保持为
a.txt
。我还尝试了mv~/Desktop/a.txt~/Desktop/“文件报告${NOW}”.txt
,但没有重命名文件。在这种情况下,应该会出现错误消息。如果没有错误消息,我无法帮助您。mv:rename/Users/MyUser/Desktop/a.txt to ~/Desktop/File Report.txt:没有这样的文件或目录
quotes@joshuatvernon:现在试试。@joshuatvernon:不要生成带有斜杠的日期。你不能把它们放在一个文件名中,它们也不能被转义。
NOW="$(date '+%a %d-%m-%Y% %H:%M')"