我可以从命令行提示符运行以下命令:
cp -r folder/!(exclude-me) ./
以递归方式将folder
除子目录之外的所有内容复制exclude-me
到当前目录中。这完全符合预期。但是,我需要在我编写的bash脚本中使用它:
if [ -d "folder" ]; then
cp -r folder/!(exclude-me) ./
rm -rf folder
fi
但是当我运行脚本时:
bash my-script.sh
我得到这个:
my-script.sh: line 30: syntax error near unexpected token `('
my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./'
而且我不知道为什么它可以在命令提示符下工作,但是在bash脚本中完全相同的行不起作用。
env > file1
在脚本中先运行run./it
,然后再执行env > file2
和source it
,以希望我发现env
s 有所不同,但事实并非如此。如何以编程方式列出两个外壳之间的所有差异(在这种情况下为交互式与非交互式)?