【发布时间】:2011-05-03 21:29:34
【问题描述】:
我在 Linux 上用 C 语言编写了一个简单的程序来删除目录中的所有文件,除了一个名为 svn 的文件,如下所示:
1 #include <stdio.h>
2
3 int main()
4 {
5 system("rm !(svn)");
6 return 0;
7 }
但是当我编译运行它时,终端显示:sh: Syntax error: "(" unexpected
但是,当我直接在终端中键入并运行命令时,所有事情都正确完成。 有什么想法吗?
【问题讨论】:
-
您使用的是哪个外壳?
sh和bash不支持这种语法。 -
我想我正在使用 bash。如何在 sh shell 语法中做我想做的事?
-
@adamk:Bash 通过
shopt -s extglob选项支持这一点。