我有一个包含一行代码的脚本 ab_script.sh
mv !(hd) "/mediafolder/sd/${PWD##*/}"
user@debianpc:/mediafolder/sd/01051 dance$
当我在文件夹中运行脚本时
syntax error near unexpected token `('
如果我在终端中复制此行并将其作为命令运行,则一切都正常。
答案1
!(hd)
是一个扩展的 glob- 您可能在交互式 shell 中默认启用了扩展通配符,但需要shopt -s extglob
在脚本中明确启用它。您可能还想考虑使用以下命令-t TARGET
形式mv
:
#!/bin/bash
shopt -s extglob
mv -t "/mediafolder/sd/${PWD##*/}" -- !(hd)