括号扩展不起作用 bash

发布于 2024-12-26 03:05:10 字数 317 浏览 0 评论 0原文

我尝试在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

緦唸λ蓇 2025-01-02 03:05:10
#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{../captcha,../files}
  1. 当您分配给变量时,不要在变量前添加$前缀,仅在扩展时
  2. 您不需要chmod周围的反引号,这样做会将整个事情视为一个命令
#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{../captcha,../files}
  1. Don't prefix a variable with $ when you are assigning to a variable, only when expanding
  2. You don't need the backticks around chmod, doing so treats the whole thing as a command
当爱已成负担 2025-01-02 03:05:10

你尝试过这种方法吗?

#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{"../captcha","../files"}

Have you tried this way?

#!/bin/bash
document_root="/var/www/www.example.com"
chmod -R g+w $document_root/{"../captcha","../files"}
你在看孤独的风景 2025-01-02 03:05:10

我自己偶然发现了这个问题。就我而言,我在脚本的某个时刻使用了 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 like set -euB re-enabling brace expansion for it has been disabled for some reason though manual states it is enabled by default.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文