在 powershell$_
中是通过管道传递的当前变量的名称。这在 Bash 中的等价物是什么?
假设我想这样做
echo "Hi" | echo "$_"
prints Hi
谢谢
在 powershell$_
中是通过管道传递的当前变量的名称。这在 Bash 中的等价物是什么?
假设我想这样做
echo "Hi" | echo "$_"
prints Hi
谢谢
Bash(或任何其他 Unix shell)没有这样的东西。
在 PowerShell 中,通过管道传递的是一个对象。在 bash 中,这是命令的输出(到标准输出)。
您可以做的关闭事情是使用while
:
thecmd | while read theline; do something_with "$theline"; done
请注意,使用了IFS
(输入字段分隔符),因此您还可以执行以下操作:
thecmd | while read first therest; do ...; done
在 Unix 意识形态中,没有对象或变量。Unix 的主要卖点是一切都是纯文本,因此您只需将文本从一个命令传递到另一个命令。
你可以认为你只有一个变量并且你总是隐式使用它。你的例子有点奇怪,但我能想到的最接近的事情是cat
命令,它接受任何输入(考虑唯一的隐式变量)并输出它,所以
echo "Hi" | cat
印刷
Hi
如果您确实需要将此值作为变量访问(无论出于何种原因),您可以使用括号中的子命令作为变量名“伪造”它,如下所示:
echo "Hi" | echo "$(cat)"