括号扩展不起作用 bash
我尝试在 bash 脚本中使用大括号扩展,如下所示。
#!/bin/bash
document_root="/var/www/www.example.com"
`chmod -R g+w $document_root/{../captcha,../files}`
这给了我错误
chmod:无法访问`/var/www/www.example.com/{../captcha,../files}':否 这样的文件或目录
但是当我在终端中运行它时,它工作得很好。
I am trying to use brace expansion in a bash script as follows.
#!/bin/bash
document_root="/var/www/www.example.com"
`chmod -R g+w $document_root/{../captcha,../files}`
this gives me the error
chmod: cannot access `/var/www/www.example.com/{../captcha,../files}': No
such file or directory
but when I run this in a terminal it works just fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
$
前缀,仅在扩展时$
when you are assigning to a variable, only when expanding你尝试过这种方法吗?
Have you tried this way?
我自己偶然发现了这个问题。就我而言,我在脚本的某个时刻使用了 set -eu 命令,导致了这个特定问题。修复方法是添加
-B
选项,例如set -euB
重新启用大括号扩展,因为它已因某种原因被禁用,尽管手册声明默认情况下启用它。Stumbled over this issue myself. In my case I was using
set -eu
command at some point of my script resulting in this particular issue. Fix was to add-B
option likeset -euB
re-enabling brace expansion for it has been disabled for some reason though manual states it is enabled by default.