我正在尝试在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}':否 这样的文件或目录
但是当我在终端中运行它时它工作得很好。
答案 0 :(得分:3)
#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{../captcha,../files}
$
,只有在展开时答案 1 :(得分:1)
我自己偶然发现了这个问题。就我而言,我在脚本的某个位置使用了set -eu
命令,从而导致了这个特殊问题。解决方法是添加-B
之类的set -euB
选项,以重新启用括号扩展功能,因为由于某种原因它已被禁用,尽管手动指出默认情况下已启用它。
答案 2 :(得分:0)
你试过这种方式吗?
#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{"../captcha","../files"}