4

在 powershell$_中是通过管道传递的当前变量的名称。这在 Bash 中的等价物是什么?

假设我想这样做

echo "Hi" | echo "$_"
   prints Hi

谢谢

4

3 回答 3

4

Bash(或任何其他 Unix shell)没有这样的东西。

在 PowerShell 中,通过管道传递的是一个对象。在 bash 中,这是命令的输出(到标准输出)。

您可以做的关闭事情是使用while

thecmd | while read theline; do something_with "$theline"; done

请注意,使用了IFS(输入字段分隔符),因此您还可以执行以下操作:

thecmd | while read first therest; do ...; done
于 2013-05-26T21:41:38.470 回答
0

在 Unix 意识形态中,没有对象或变量。Unix 的主要卖点是一切都是纯文本,因此您只需将文本从一个命令传递到另一个命令。

你可以认为你只有一个变量并且你总是隐式使用它。你的例子有点奇怪,但我能想到的最接近的事情是cat命令,它接受任何输入(考虑唯一的隐式变量)并输出它,所以

echo "Hi" | cat

印刷

Hi
于 2013-05-26T21:46:08.337 回答
0

如果您确实需要将此值作为变量访问(无论出于何种原因),您可以使用括号中的子命令作为变量名“伪造”它,如下所示:

echo "Hi" | echo "$(cat)"
于 2013-05-26T22:09:24.167 回答