shopt -s extglob不工作

时间:2013-04-03 11:56:03

标签: bash wildcard

我在远程服务器上运行我的脚本。这是我的.sh脚本的标题:

#!/bin/bash

shopt -s extglob; 
#turns on extended globbing features ('!' can then be used to exclude file names)

echo `ls -la /storage/brno2/home/nicki/snp/`;
cp -r /storage/brno2/home/nicki/snp/(!input) .

感谢echo,我可以看到名为“input”的文件夹位于我期望的文件夹中。然而,看来extglob对我不起作用:(

/var/spool/torque/mom_priv/jobs/2308017.arien.ics.muni.cz.SC: line 11: syntax error near unexpected token `('
/var/spool/torque/mom_priv/jobs/2308017.arien.ics.muni.cz.SC: line 11: `cp -r /storage/brno2/home/nicki/snp/(!input) .'

我当然可以列出我要复制的所有文件。不过,我还是想避免这种讨厌的做法。

谢谢。

1 个答案:

答案 0 :(得分:4)

扩展globs的正确语法是

!(pattern-list)

感叹号应该在括号外面。