簡體   English   中英

將命令輸出分配給bash中的變量時出錯(Linux)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM