shell script笔记_单引号、双引号、反引号

问:为什么要用引号?
答:变量值出现空格时,比如 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

你可能感兴趣的:(shell)