天天看点

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