首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将变量传递给mv命令,以便在bash (.sh)文件中用空格和变量文本重命名文件

如何将变量传递给mv命令,以便在bash (.sh)文件中用空格和变量文本重命名文件
EN

Stack Overflow用户
提问于 2016-01-16 11:37:25
回答 1查看 13.8K关注 0票数 2

我创建了一个变量并在其中存储了日期、日期和时间:

代码语言:javascript
运行
复制
NOW=$(date "+%a %d/%m/%Y% %H:%M")

然后,我想将$NOW传递给mv命令以重命名文件。

例如,创建具有标题和当前日期的名为a.txt的文件:

代码语言:javascript
运行
复制
printf "File Report (" > ~/Desktop/a.txt
echo $NOW"):\n" >> ~/Desktop/a.txt  

然后,我尝试使用名称中包含的变量($NOW)重命名该文件:

代码语言:javascript
运行
复制
mv ~/Desktop/a.txt ~/Desktop/'File Report $NOW'.txt

最后一行应该是什么?我也尝试了这两个选项。

代码语言:javascript
运行
复制
mv ~/Desktop/a.txt ~/Desktop/'File Report' $NOW.txt

&

代码语言:javascript
运行
复制
mv ~/Desktop/a.txt ~/Desktop/'File Report'${NOW}.txt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-16 11:49:00

假设有一个合理的类似于Bourne的shell (比如bash),变量替换不会发生在单引号中。您需要使用双引号:

代码语言:javascript
运行
复制
mv ~/Desktop/a.txt "${HOME}/Desktop/File Report ${NOW}.txt"

(我不确定是否需要大括号,但它们无伤大雅)

您还需要更改date命令,以避免使用斜杠。例如:

代码语言:javascript
运行
复制
NOW="$(date '+%a %d-%m-%Y% %H:%M')"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34823263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档