ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用cat-EOF时的一些坑

2021-11-23 11:31:50  阅读:167  来源: 互联网

标签:EOF filename 空格 使用 cat 输入


在使用cat EOF内容中若出现$变量通常会直接被执行,则与想要输入的内容不一致。若想保持$变量不变需要使用 \ 符进行注释 。比如下面:

cat > /etc/yum.repos.d/nginx.repo << EOF
vim /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

执行时发现,输入的内容不正确, 因为输入的内容中含有$, 会当成命令执行, 要使用转义符\换成普通字符$ .


在linux shell脚本中我们经常见到类似于cat << EOF的语句,问题是EOF好像是文件的结束符,用在这里起到什么作用?
首先必要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)
下面是几种常见的使用方式及其作用:
1、cat<<EOF,以EOF输入字符为标准输入结束:
2、cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束,输入时是没有’>'的。
3、cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样

注意,结束后必须和前面一样是EOF, 前面有空格都不可以。有时无法结束,检查有没有空格.
意,结束后必须和前面一样是EOF, 前面有空格都不可以。有时无法结束,检查有没有空格.

标签:EOF,filename,空格,使用,cat,输入
来源: https://blog.csdn.net/weixin_43705953/article/details/121489288

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有