0
我不知道爲什麼這個命令:錯誤命令的輸出assingning給一個變量在bash(Linux)的
FILE=`file /usr/bin/java | tr -d \`\' | awk '{print $5}'`
結果此錯誤消息:
bash: command substitution: line 1: unexpected EOF while looking for matching ``'
bash: command substitution: line 2: syntax error: unexpected end of file
如果我運行先前的命令沒有它賦值給一個變量,它按預期工作:
$ file /usr/bin/java | tr -d \`\' | awk '{print $5}'
/etc/alternatives/java
有誰知道爲什麼會這樣,我怎麼能全成y將輸出值分配給一個變量?我試圖從符號鏈接中找到指向二進制文件的指向路徑,所以我可以找出它是32位還是64位文件(以通用的方式,不使用類似java -version
)
注2:我試着sed
代替tr
去掉引號,但它返回相同的錯誤
非常感謝你提前,問候...
Nacho
不是back-ticks是原始代碼的問題,但它們內部沒有轉義。包含在反標記中的命令行包含兩個反斜槓,它們需要轉義,但它們不是。 – axiac
非常感謝Avinash Raj!這解決了我的問題 – NachoGomez
@axiac你是對的,逃避它就像這樣工作很好'FILE = \'file/usr/bin/java | tr -d \\''\'| awk'{print $ 5}'\'' – NachoGomez