关于单引号与双引号的使用

在工作中经常碰到单引号,双引号的问题,特此记录:
* hard quote:' ' (單引號),凡在 hard quote 中的所有 meta. 均被關閉。
* soft quote: " " (雙引號),在 soft quoe 中大部份 meta. 都會被關閉,但某些則保留(如$)。
* escape : \ (反斜線),只有緊接在 escape (跳脫字符)之後的單一 meta. 才被關閉。
oracle@linux:~/mouse> A=B\ C
oracle@linux:~/mouse> echo "$A";
B C
oracle@linux:~/mouse> echo '$A';
$A

1 在Shell中
输出单引号:echo "'";
oracle@linux:~/mouse> A="'BC'";
oracle@linux:~/mouse> echo "$A";
'BC'

输出双引号:echo '"';
oracle@linux:~/mouse> A='B"C';
oracle@linux:~/mouse> echo $A
B"C

2 AWK中
输出单引号:
oracle@linux:~/mouse> cat t.unl
1
2
oracle@linux:~/mouse> awk '{print $1"\047"}' t.unl;
1'
2'
oracle@linux:~/mouse>  awk '{print $1"'\''"}' t.unl;
1'
2'
 
输出双引号:
oracle@linux:~/mouse>  awk '{print "\"$1\""}' t.unl
"$1"
"$1"

3 SED中:
输出单引号:
oracle@linux:~/mouse> sed -e  "s/^/key='/"  -e "s/$/'/" t.unl
key='1'
key='2'

输出双引号:
oracle@linux:~/mouse> sed -e  's/^/key="/'  -e 's/$/"/' t.unl
key="1"
key="2"

4 Oracle SQL 语句中
输出单引号:
SQL> select 'Test' ||''''||'name'from dual;

'TEST'||'
---------
Test'name
第一,四个单引号匹配,当第二个单引号充当转义角色,第三个单引号被转义

输出双引号:
SQL> select 'Test' ||'"'||'name'from dual;

'TEST'||'
---------
Test"name

 

请使用浏览器的分享功能分享到微信等