当前位置: 技术问答>linux和unix
shell老报错,为什么?
来源: 互联网 发布时间:2017-03-10
本文导语: 本帖最后由 songkang666 于 2012-08-14 16:06:27 编辑 想做个类似于Makefile作用的shell脚本,当./comile.sh remove时可以删除除.c与.sh以外的所有文件,但为什么老出错,错误为: ./compile.sh: line 10: 在未预料的“(”附近出现语法...
./compile.sh: line 10: 在未预料的“(”附近出现语法错误
./compile.sh: line 10: ` ls !(*.c|*.sh) | xargs rm'
代码为:
#read -p "which files are what you want to compile? "
case $# in
"1")
if [ "$1" == "remove" ]; then
ls !(*.c|*.sh) | xargs rm
if [ "$?" == "0" ]; then
echo "remove successfully"
else
echo "remove failure"
fi
else
gcc -o ${1%.c} $1
fi
;;
"2")
gcc -o ${1%.c} $1
gcc -o ${2%.c} $2
;;
*)
echo "usage: $0 para1 [para2 ....]"
;;
esac
|
楼主的用法是bash的扩展,需要开启extglob选项。
开头加上shopt -s extglob
开头加上shopt -s extglob
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。