无法将变量传递给其他命令

ubu*_*ing 5 command-line bash environment-variables

我试图将一个变量传递给另一个 shell 命令。

要清楚;

passwdContent=$( getent passwd "$USER" )
echo "passwdcontent" $passwdContent
Run Code Online (Sandbox Code Playgroud)

我从用户“x”那里得到了“passwd”字段。在本节之后,我想使用这个变量。

但是在这里我无法解决如何传递“passwdContent”变量。我试过这样的方法;

exampleVariable=[( "$passwdContent" | cut -d : -f 1 )]
Run Code Online (Sandbox Code Playgroud)

在我想回显“exampleVariable”之后,它给了我错误。

我知道我可以在一行中完成所有这些。但我想学习如何做到这一点。

Rav*_*ina 4

您应该使用命令替换,并且为此您缺少$.

您还应该将pipe变量的内容写入cut或从中读取stdin

所以用这个代替:

$ exampleVariable="[$(cut -d: -f1 <<<$passwdContent )]"
Run Code Online (Sandbox Code Playgroud)

现在:

$ echo "$exampleVariable"
[ravexina]
Run Code Online (Sandbox Code Playgroud)