特殊符号作用
單引號:保留括起的所有字符的字面值。取消多個字符的特殊含義
雙引號:$、反引號(可替換成$())、反斜杠特殊含義保留下來,而其他特殊符號只保留字面值。取消多個字符的特殊含義
\作為轉義字符,僅取消單個字符的特殊含義。
案例:
[root@classroom ~]# echo '`ls`'
`ls`
[root@classroom ~]# echo "`ls`"
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
Videos
命令中帶有-e和不帶-e的反斜杠參數
[root@classroom ~]# b=n
1、[root@classroom ~]# echo -e "\\$b"
###雙引號內,\\變成了字符\,而$b變成了n。結果字符串為\n。而echo又識別轉移字符\n,所以結果輸出是回車。
2、[root@classroom ~]# echo -e "\\u"
\u
###雙引號中的\\轉成了字符\,雙引號輸出結果為\u。由于\u在linux系統里沒有定義,所以只好輸入\u
3、[root@classroom ~]# echo -e "\\\u"
\u
###雙引號中的\\轉成字符\,雙引號輸出結果為\\u。由于-e參數識別了轉義字符,使得\\u轉成了字符\u,輸入\u
4、[root@classroom ~]# echo -e "\\$u"
###雙引號中的\\識別成\,而$u識別成了n。雙引號輸出\u。由于-e參數識別了轉義字符,使得\n變成了回車并輸出。
5、[root@classroom ~]# echo -e "\\\$u"
\$u
###雙引號中\\識別成字符\,\$識別成$,雙引號中輸入\$u。由于-e參數雖然可以識別\n等參數,由于man文件中echo識別不了\$,只好輸出\$u。
6、[root@classroom ~]# echo -e "\\n\$u"
$u
###雙引號中\\識別成字符\,\$識別成$,雙引號輸出\n$u。由于-e參數可以識別\n,所以輸出回車+$u。
倒引號:
將倒引號中的內容或$()中的執行結果作為原命令的值。功能等同于$(),推薦使用$()而不是倒引號
案例:
[root@classroom ~]# echo "`ls`" > /root/test.txt
###不符合posix編程規范,不推薦使用
[root@classroom ~]# cat /root/test.txt
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
Videos
[root@classroom ~]# echo "$(ls)" > /root/test.txt
###符合posix編程規范,強烈推薦使用
[root@classroom ~]# cat /root/test.txt
anaconda-ks.cfg
bin
classroom-rhce-post.log
Desktop
DHCP-ranges.txt
Documents
Downloads
examrhce-0.0.1-1.el7.x86_64.rpm
ldap
Music
Pictures
Public
selinux_modules
Templates
test.txt
Videos
[root@classroom ~]#
轉載于:https://www.cnblogs.com/yujiebin/p/10053120.html
總結
- 上一篇: spring事务三大接口
- 下一篇: 零食店投资?市场成本风险分析