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