+ -
当前位置:首页 → 问答吧 → 如何表示呢,急求!!!

如何表示呢,急求!!!

时间:2011-05-18

来源:互联网

本帖最后由 kean_ca 于 2011-05-18 14:53 编辑

运行一个程序的时候,判断第一个变量如果是任意一个以下 [, ], ^, *, /, \, ., $以外的任意字符,输出 ‘The symbol is not allowed', 该怎么表示?
最麻烦的是: test ${1} = '\' -o ${1} = '/' -o ${1} = '[' -o ${1} = ']' -o ${1} = '*' -o ${1} = '^' -o ${1} = '.' -o ${1} = '$'
但是这个检测$,显示too many arguments

作者: kean_ca   发布时间: 2011-05-18

这个题目你不是已经发过贴了吗?
咋老发相同的帖子啊……

作者: xiaopan3322   发布时间: 2011-05-18

awk '/[^\[\]\^\*\/\\\.\$]/'

作者: zjdick1984   发布时间: 2011-05-18

回复 xiaopan3322


    那个问题,我开始写错了,后来改过来就没人看了,所以就又发了一遍,帮帮忙吧

作者: kean_ca   发布时间: 2011-05-18

回复 zjdick1984


    能不能不用awk啊

作者: kean_ca   发布时间: 2011-05-18

本帖最后由 liion631818 于 2011-05-18 14:47 编辑

回复 kean_ca


    [[ $1 =~ [^]*/\.$^[] ]] && echo ok

作者: liion631818   发布时间: 2011-05-18

回复 liion631818


    我想要的是${1}是一下八个里的一个输出,echo

作者: kean_ca   发布时间: 2011-05-18

回复 kean_ca


     [[ $1 =~ []*/\.$^[] ]] && echo ok

作者: liion631818   发布时间: 2011-05-18

回复 liion631818


    非常感谢,你都成我偶像了

作者: kean_ca   发布时间: 2011-05-18

回复 kean_ca


   


   上面的代码只能保证$1的开头是那八个字符之一

    如果要保证$1全是有那八个字符构成:
     [[ ! $1 =~ [^]*/\.$^[] ]] && echo ok

作者: liion631818   发布时间: 2011-05-18