首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用bash编写bash脚本?

使用bash编写bash脚本?
EN

Stack Overflow用户
提问于 2022-08-04 18:46:26
回答 2查看 34关注 0票数 0
代码语言:javascript
复制
echo "#!/bin/bash\nls -l /home/" > /home/myscript.sh
bash: !/bin/bash\nls: event not found

我的剧本应该是:

代码语言:javascript
复制
#!/bin/bash
ls -l /home/

为什么它忽略回显"“字符串而认为存在某种事件?为什么它不承认#!/bin/bash是一个特殊的词?

同样的事情发生在我

代码语言:javascript
复制
echo "#!/bin/bash" > /home/myscript.sh

所以这不是新的台词!

代码语言:javascript
复制
echo -e "#\!/bin/bash" > /home/myscript.sh

将文件内容写入如下:

代码语言:javascript
复制
#\!/bin/bash

为什么这个简单的行动是可悲的错呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-04 18:58:55

echo -e '#!/bin/bash\nls -l /home/' > /home/myscript.sh

一个组合的-e和使用单引号修正了它。

票数 0
EN

Stack Overflow用户

发布于 2022-08-04 18:51:10

来自bash手册:

双引号中的

包围字符保留引号中所有字符的文字值,但$除外,‘,\,以及在启用历史扩展时,!。

所以要么使用单引号,要么用set +o history禁用历史扩展。

但不要使用echo。相反,请做:

代码语言:javascript
复制
printf '%s\n' '#!/bin/bash' 'ls -l /home/' > /home/myscript

代码语言:javascript
复制
cat > /home/myscript << 'EOF'
#!/bin/bash
ls -l /home/
EOF
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73240922

复制
相关文章

相似问题

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