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

如何使用bash脚本创建bash脚本?
EN

Ask Ubuntu用户
提问于 2020-06-11 18:27:21
回答 2查看 328关注 0票数 0

我正在尝试创建一个安装后脚本,它本身创建一个bash脚本(startapp脚本)。这是原始的启动脚本:

代码语言:javascript
复制
#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]
then wmctrl -a "$2"
else $1 &
fi

这是我的后安装程序脚本

代码语言:javascript
复制
#!/bin/sh
# CONFIGURE Teamviewer startup link
sudo echo -e "#!/bin/bash\nif [ `wmctrl -l | grep -c "$2"` != 0 ]\nthen wmctrl -a "$2"\nelse $1 &\nfi" > /usr/local/bin/startapp
# Activate script
sudo chmod +x /usr/local/bin/startapp

但是,当我用sudo nano /usr/local/bin/startapp检查这个脚本时,我得到了这个奇怪的修改脚本:

代码语言:javascript
复制
#!/bin/bash
if [ 6 != 0 ]
then wmctrl -a 
else  &
fi

你能告诉我为什么系统会自动修改它吗?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2020-06-11 18:45:27

使用此处文档

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

cat <<'EOF' | sudo tee /usr/local/bin/startapp
#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]
then wmctrl -a "$2"
else $1 &
fi
EOF

在分隔符中使用引号(包括反斜杠\EOF)可以防止调用shell过早地扩展替换。

票数 2
EN

Ask Ubuntu用户

发布于 2020-06-11 18:48:43

您需要转义回退,因为它们在引用的字符串中不受限制,因此被执行。

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

https://askubuntu.com/questions/1249356

复制
相关文章

相似问题

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