我猜您的问题是由于从脚本运行时未设置shell扩展glob选项。当您声称它可以在命令行中运行时,您已经以某种方式设置了
extglob允许
!()全局标记。
由于
bash脚本无论何时以a
#!/bin/bash开头都将启动新的子shell,因此在父shell中设置的扩展选项可能不会反映在新shell中。要使其生效,请在爆炸后在脚本中进行设置
#!/bin/bashshopt -s extglob## going to dir moving stuffrm -rf !(composer.json|.git)



