BASH 脚本不解释逻辑 Not in glob 表达式

标签 bash shell ubuntu logical-operators

这个问题在这里已经有了答案:





Pattern match does not work in bash script

(3 个回答)


11 个月前关闭。




如果将以下脚本复制并粘贴到 shell 中,则可以正常工作。但是,当创建脚本文件并使用 BASH 进行解释时,它会失败并出现错误:“语法错误:”(“意外。看起来逻辑“!”(不是)没有被解释。
'''

#!/bin/bash
for TARGETFOLDER in !(*Sidereal);
do cd $TARGETFOLDER;
echo "--->---> Processing" $TARGETFOLDER;
for FILTERFOLDER in *;
do cd $FILTERFOLDER;
echo "--->--->---> Processing" $TARGETFOLDER $FILTERFOLDER;
pp_prepare -keep_wcs *r.fits;
pp_photometry -snr 3 -minarea 12 -aprad 6 *r.fits;
pp_calibrate -instrumental *r.fits;
cd ..;
done;
cd ..;
done;
'''
有没有办法正确解释这个 - 或者可能重写以符合解释器?给定的原始脚本格式不正确...抱歉
谢谢

最佳答案

您需要显式启用扩展全局支持。

shopt -s extglob

for TARGETFOLDER in !(*Sidereal);

   ...

关于BASH 脚本不解释逻辑 Not in glob 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68504377/

相关文章:

ruby-on-rails - 在 Rails 中使用 Capistrano 部署时无法运行/etc/profile.d/chruby.sh

ruby - 为什么在 bash 上执行 ruby​​ 命令到命令文件不起作用?

linux - BASH:如何对管道中的数字执行算术运算

linux - BASH 空白别名到 'cd'

java - 可执行的 shell 脚本在嵌入然后从 java 存档中提取后仍然可以执行吗?

linux - Basic auth + suexec 以 linux 用户身份验证

linux - 启动 bash 脚本

c# - 使用 .NET Core 在 Linux 中通过 "/bin/bash"执行 .sh(bash 脚本)文件

Eclipse 特定颜色随新 Ubuntu 主题而变化

mysql服务器详细日志