gpt4 book ai didi

linux - 在 bash (Linux) 中将命令的输出分配给变量时出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:04 24 4
gpt4 key购买 nike

我想知道为什么这个命令:

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

有谁知道为什么会这样,我怎样才能成功地将输出值分配给变量?

注意:出于好奇,我试图从符号链接(symbolic link)中找到二进制文件的指向路径,这样我就可以确定它是 32 位还是 64 位文件(在一种通用的方式,不使用像 java -version)

这样的东西

注意 2: 我尝试使用 sed 而不是 tr 删除引号,但它返回相同的错误

非常感谢您,问候...

Jade 米片

最佳答案

我认为这是因为您将命令括在反引号中。使用 $() 而不是反引号。

FILE=$(file /usr/bin/java | tr -d \`\' | awk '{print $5}')

关于linux - 在 bash (Linux) 中将命令的输出分配给变量时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27624968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com