Bash 如何使用cut为变量赋值?

Bash 如何使用cut为变量赋值?,bash,shell,unix,terminal,Bash,Shell,Unix,Terminal,下面是我用来给变量yellow指定“yellow”的命令。我似乎可以使用xargs将其回显,但当我将其指定为黄色,然后尝试回显时,它会打印一个空行 下面是命令。非常感谢你的帮助 cut -c 2- color.txt | xargs -I {} yellow={}; 这里不需要xargs: yellow=$(cut -c 2- color.txt) 因为xargs作为一个子进程运行,所以实际上无法从中更改shell的状态——即使启动新shell,该shell的变量和其他局部状态在退出时也

下面是我用来给变量yellow指定“yellow”的命令。我似乎可以使用xargs将其回显,但当我将其指定为黄色,然后尝试回显时,它会打印一个空行

下面是命令。非常感谢你的帮助

cut -c 2- color.txt | xargs -I  {}  yellow={};

这里不需要
xargs

yellow=$(cut -c 2- color.txt)
因为
xargs
作为一个子进程运行,所以实际上无法从中更改shell的状态——即使启动新shell,该shell的变量和其他局部状态在退出时也会消失。因此,当子命令传递给xargs时,Shell赋值没有意义


也就是说,您也不需要
cut
。在本机bash中,不使用子流程或外部工具:

read color <color.txt
yellow=${color:1}
读取颜色您需要使用:

yellow=$(cut -c 2- color.txt)
xargs
需要执行一个外部shell二进制文件,并且
yellow={}
不是真正的二进制文件。

使用:


$()
语法扩展到命令的输出,然后分配给变量。

为什么需要
cut
read-r yellow
yellow=$(cut -c 2- color.txt)