结合两个bash命令

时间:2015-10-14 21:13:39

标签: linux bash shell

如果找到此代码

host raspberrypi | grep 'address' | cut -d' ' -f4

给出pi IP地址

和这个

wget --post-data="PiIP=1.2.3.4" http://dweet.io/dweet/for/cycy42

将1.2.3.4发送到dweet.io流

如何从1st获取输出以取代第二个1.2.3.4?

1 个答案:

答案 0 :(得分:1)

将第一个命令的输出保存在变量中:

ip=$(host raspberrypi | grep 'address' | cut -d' ' -f4)
wget --post-data="PiIP=$ip" http://dweet.io/dweet/for/cycy42

顺便说一句,如果你的raspberrypi正在运行raspbian, 然后一个更清洁的方式来获取IP地址:

hostname -I

将命令简化为:

ip=$(hostname -I)
wget --post-data="PiIP=$ip" http://dweet.io/dweet/for/cycy42

让它成为一个单行:

wget --post-data="PiIP=$(hostname -I)" http://dweet.io/dweet/for/cycy42

<强>更新

所以似乎hostname -I给你的输出有点不同。 您可以使用它:

ip=$(hostname -I | awk '{print $1}')

要使其成为单行,您可以将其插入第二行,就像我在前面的示例中所做的那样。