首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个不解释任何内容的本地文档

创建一个不解释任何内容的本地文档
EN

Stack Overflow用户
提问于 2016-08-05 19:59:38
回答 1查看 616关注 0票数 3

我正在为一个不熟悉bash的朋友写剧本。脚本生成一个备份脚本,生成一个crontab并运行crontab来创建一个cron作业。

我希望对这些备份进行日期,所以当前的脚本(相关内容)是:

代码语言:javascript
复制
cat <<EOF > ~/scheduledBackups/scripts/finalCutScript.bash
mkdir -p ~/scheduledBackups/FinalCut-`date +%a-%b-%d-%Y_%H`
cp -r $BACKUP_DIR/* ~/scheduledBackups/FinalCut-`date +%a-%b-%d-%Y_%H`
EOF

但是,这会生成finalCutScript.bash,其日期与运行"installer“脚本的日期相同。

有什么方法可以在finalCutScript.bash中准确地放置这个本地文档吗?我希望将所有内容都保存在一个脚本中,以便以后可以使用这个脚本框架。

精化

预期行为:

我想要用管道连接到的文件中包含

代码语言:javascript
复制
mkdir -p ~/scheduledBackups/FinalCut-`date +%a-%b-%d-%Y_%H`
cp -r $BACKUP_DIR/* ~/scheduledBackups/FinalCut-`date +%a-%b-%d-%Y_%H`

实际行为

由该heredoc生成的文件包含

代码语言:javascript
复制
mkdir -p ~/scheduledBackups/FinalCut-Fri-Aug-05-2016_16
cp -r ~/Documents//* ~/scheduledBackups/FinalCut-Fri-Aug-05-2016_16
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-05 20:09:00

您应该在本文档中使用EOF并使用$(...)作为命令替换:

代码语言:javascript
复制
cat <<-'EOF' >~/scheduledBackups/scripts/finalCutScript.bash
mkdir -p ~/scheduledBackups/FinalCut-$(date +%a-%b-%d-%Y_%H)
cp -r $BACKUP_DIR/* ~/scheduledBackups/FinalCut-$(date +%a-%b-%d-%Y_%H)
EOF

更新:,如OP下面的注释所示,如果没有展开当前shell中的变量,也可以转义$

代码语言:javascript
复制
BACKUP_DIR='foobar' # variable to be used below in here-doc

cat <<-EOF >~/scheduledBackups/scripts/finalCutScript.bash
mkdir -p ~/scheduledBackups/FinalCut-\$(date +%a-%b-%d-%Y_%H)
cp -r $BACKUP_DIR/* ~/scheduledBackups/FinalCut-\$(date +%a-%b-%d-%Y_%H)
EOF

上面的命令将使用当前环境中的$BACKUP_DIR,但会在输出中添加文字$(date +%a-%b-%d-%Y_%H)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38796968

复制
相关文章

相似问题

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