shell中空格的使用;空格替换;通配符
测试:
test $? -eq 0 && echo "yes" || echo "no"
通配符:
通配符 (1)*:0个或多个连续的字符 (2)?:任何单个字符 (3)[abc]:出现在abc中的任何单个字符 (4)[^abc]:任何在abc中未出现的单个字符 (5){a,b,c}:可以扩展成多个参数,首先扩展为a、再次为b,最后为c
空格替换
将多个空格替换为一个空格 sed 's/[ ][ ]*/ /g' filename sed -e 's/[[:space:]][[:space:]]*/ /g' filename 将1到10个空格替换为一个空格 sed 's/[ ]\{1,10\}/ /g' filename 去掉多余空格 echo "hello world" | tr -s '[[:space:]]' http://www.runoob.com/linux/linux-comm-tr.html http://wiki.jikexueyuan.com/project/unix/regular-expressions.html
空格常见使用:
- 定义变量时, =号的两边不可以留空格
- 条件测试语句 [ 符号的两边都要留空格
- 条件测试的内容,如果是字符串比较的话, 比较符号两边要留空格
- 如果if 和 then写在同一行, 那么,注意, then的前面要跟上 ; 号.如果 then 换行写, 那么也没问题
- if 后面一定要跟上 then. 同理elif 后面一定要跟上 then.
- 命令和其后的参数或对象之间一定要有空格
- 取变量值的符号'$'和后边的变量或括号不能有空格
反斜杠 backslash-escaped( \ )
反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项,且转义字符要使用双引号 echo -e "\n"
反斜杠的另一种作用,就是当反斜杠用于一行的最后一个字符时,shell把行尾的反斜杠作为续行,这种结构在分几行输入长命令时经常使用。
http://blog.sina.com.cn/s/blog_4b9eab320102vzuv.html