在工作中经常碰到单引号,双引号的问题,特此记录:
* 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