这个问题在这里已经有了答案:
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/