问:为什么要用引号?
答:变量值出现空格时,比如 name=xiao ming 这样执行就会出现问题,而必须用引号括起来,比如 name=“xiao ming”。
反引号
` 是反引号是在ESC键下面的,反引号代表引用linux的命令。为了防止混淆或 POSIX 规范的角度来说,尽量使用 $(命令) 的方式来引用linux命令的输出,而不要使用反引号。
下面2行输出结果是一样的
echo $(date)
echo `date`
下面2行输出结果是一样的
echo $(expr 1 + 1)
echo `expr 1 + 1`
单引号
被单引号括起来的字符都是普通字符,就算特殊字符也不再有特殊含义;
sed 后面接的动作,请务必以 ‘’ 两个单引号括住喔!
#搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行:
nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'
1 root:x:0:0:root:/root:/bin/blueshell
#删除文件的第2行
nl /etc/filename | sed '2d'
#sed 's/要被取代的字串/新的字串/g'
双引号
被双引号括起来的字符中,$、\、反引号 有特殊含义。
$代表引用变量值,\代表转义字符,反引号代表引用linux的命令。
其实在shell中 echo的参数-e能够解析转义字符,在单引或者双引的情况下都能够解析。
-e 启用下列反斜杠转义的解释
echo 'a\nb' #结果是a\nb
echo -e 'a\nb'
运行结果是:
a
b