[英]Error assingning the output of a command to a variable in 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
有誰知道為什么會這樣,如何將輸出值成功分配給變量?
注意:出於好奇,我正在嘗試從符號鏈接中找到指向二進制文件的指向路徑,因此我可以找出它是32位還是64位文件(以通用方式,不使用類似java -version
東西java -version
)
注意2:我嘗試用sed
而不是tr
刪除引號,但它返回相同的錯誤
預先非常感謝您,問候...
納喬
我認為這是因為您將命令包含在反引號內。 使用$()
代替反引號。
FILE=$(file /usr/bin/java | tr -d \`\' | awk '{print $5}')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.