![如何在 upstart 配置文件中使用 shopt 命令?](https://linux22.com/image/1133859/%E5%A6%82%E4%BD%95%E5%9C%A8%20upstart%20%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%B8%AD%E4%BD%BF%E7%94%A8%20shopt%20%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我正在尝试创建一个 upstart 配置文件,在脚本部分中我使用 shopt 命令来设置 nullglob 参数 -
shopt -s nullglob
然而,我得到了以下错误-
/proc/self/fd/9: 8: /proc/self/fd/9: shopt: not found
我们可以在 upstart 脚本中使用 shopt 吗?有人用过吗?另外,由于 shopt 是内置命令,我找不到可以在脚本中包含的确切路径,以便从那里执行 shopt。任何指点都将不胜感激。
仅供参考-我正在使用 Ubuntu。
我可以从命令行和 shell 脚本中使用 shopt。但是只有在 upstart 配置文件中使用它时才会遇到此问题。
谢谢!
答案1
感谢您的评论,它帮助我解决了实际问题。正如steeldriver提到的,它shopt
是一个bash
内置函数,由于默认upstart
使用/bin/sh
并且它与符号链接dash
,因此shopt
无法正常工作。
另外,有效的脚本shopt
是一个 bash 脚本(希望它能回答 bodho.zazen 的问题)。
经过一番研究,我所做的就是将我的shopt
命令像这样包含在脚本部分中,并且这有效 -
script
/bin/bash <<'EOF'
<my-code>
shopt -s nullglob
<my-code>
EOF
end script
感谢大家帮助我!:)