java 中的单引号报错_shell中的单引号,双引号,反引号
docker的父鏡像中定義了一個(gè)環(huán)境變量,我們的鏡像在啟動(dòng)命令中需要用到這個(gè)環(huán)境變量。但是不加雙引號(hào)時(shí)總是報(bào)錯(cuò),報(bào)找不到j(luò)ava的啟動(dòng)類(lèi),加上雙引號(hào)就不報(bào)錯(cuò)了。
父鏡像中定義的變量:$xxx_CMD = -Xdump:tool:events=systhrow,opts=ASYNC,filter=java/lang/OutOfMemoryError,exec=sleep 120s && kill -9 %pid
啟動(dòng)腳本為:java -server ... "$xxx_CMD" ...? xxx.jar
我有用ps命令查看和對(duì)比對(duì)比$xxx_CMD和"$xxx_CMD"的啟動(dòng)的java參數(shù),實(shí)際上并無(wú)差別,%pid也沒(méi)有換成實(shí)際的進(jìn)程編號(hào)。
使用$xxx_CMD時(shí),不是空格就是%導(dǎo)致java虛擬機(jī)報(bào)錯(cuò)。報(bào)找不到j(luò)ava的啟動(dòng)類(lèi),更多應(yīng)該還是空格的問(wèn)題。
單引號(hào)
所見(jiàn)即所得,即輸出時(shí)會(huì)將單引號(hào)內(nèi)的所有內(nèi)容都原樣輸出,或者描述為單引號(hào)里面看到的是什么就會(huì)輸出什么,這稱(chēng)為強(qiáng)引用
單引號(hào)中使用變量,單引號(hào)中再加單引號(hào),‘This is number ‘${A}‘‘
雙引號(hào)
輸出雙引號(hào)內(nèi)的所有內(nèi)容;如果內(nèi)容中有命令(要反引下)、變量、特殊轉(zhuǎn)義符等,會(huì)先把變量、命令、轉(zhuǎn)義字符解析出結(jié)果,然后再輸出最終內(nèi)容,推薦使用,這稱(chēng)為弱引用
echo "`echo hello world`",結(jié)果是hello world
當(dāng)需要使用字符($ ?` ?" ?\)時(shí)必須進(jìn)行轉(zhuǎn)義,就是在前面加\
無(wú)引號(hào)
賦值時(shí),如果變量?jī)?nèi)容中有空格,則會(huì)造成賦值不完整。而在輸出內(nèi)容時(shí),會(huì)將含有空格的字符串視為一個(gè)整體來(lái)輸出;如果內(nèi)容中有命令(要反引下)、變量等,則會(huì)先把變量、命令解析出結(jié)果,然后輸出最終內(nèi)容;如果字符串中帶有空格等特殊字符,則有可能無(wú)法完整地輸出,因此需要雙引號(hào)替代無(wú)引號(hào)的情況,特別是對(duì)變量賦值時(shí)改加雙引號(hào)
反引號(hào)
一般用于引用命令,執(zhí)行的時(shí)候命令會(huì)被執(zhí)行,賦值和輸出都要用“將命令引起來(lái)
原文:https://www.cnblogs.com/lnlvinso/p/13127517.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的java 中的单引号报错_shell中的单引号,双引号,反引号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java中String转Long方式及注
- 下一篇: ie6 css padding,IE6p