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