2015-10-14 78 views
1

如果发现这个代码组合两个bash的命令

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

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

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

顺便说一下,如果你的树莓派运行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 

UPDATE

如此看来hostname -I给人有点不同的输出为您服务。 您可以使用此则:

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

使之成为一个内胆,可以插入到这一点,就像我在前面的例子做了第二行。

+0

BTW主机名-I给我192.168.0.35 fd36:c211:4785:0:3ce3:ed63:ecfb:fe1b fd36:c211:4785:0:213:efff:fe80:2658 – SimpleSi

+0

查看我的更新。 – janos

+0

是的 - 它的工作原理:) wget --post-data =“PiIP = $(hostname -I | awk'{print $ 1}')”http://dweet.io/dweet/for/cycy42 – SimpleSi