我正在运行一个吐出IP的命令,我需要将它提供给特定位置的另一个程序,我该怎么办?
$ command1 | command2 -c configfile -i "$1" status
" $ 1和#34;是我想要command1的结果去的地方。
感谢。
答案 0 :(得分:3)
xargs
是您的工具
$ command1 | xargs -I {} command2 -c configfile -i {} status
您可以多次引用该参数,例如
$ echo this | xargs -I {} echo {}, {}, and {}
this, this, and this
基于最后的评论,也许你想做这样的事情
$ var=$(command1) && command2 "$var" ... | command3 "$var" ...
答案 1 :(得分:1)
要传递command2
一个文件名,在读取时会提供command1
的输出,相应的工具为process substitution:
command2 -c configfile -i <(command1) status
<(...)
语法将替换为文件名 - 在Linux上,格式为/dev/fd/NN
;在其他一些平台上使用命名管道 - 可以从中传输command2
的输出。
答案 2 :(得分:0)
在bash shell中可能有100种方法可以做到这一点。这个快速而简单。我们可以使用ifconfig,grep IP地址,使用awk将其拉出并将其分配给环境变量。然后使用布尔运算符运行使用环境变量
的下一个命令IPADDR=`ifconfig | grep 172 | awk '{print $2}' | awk -F: '{print $2}'` && echo $IPADDR