【发布时间】:2014-06-14 05:40:05
【问题描述】:
我想知道如何在管道命令中使用 stdout,然后在 nc 连接中使用它:
<COMMAND> | \
grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])' | \
(echo "exit" | nc <IP-HERE> 23 -w 5 \
if [ "$?" -eq "0" ]; then
(
<SomeCommandsHERE>
) | nc <IP-HERE> 23 1>>$file 2>&1 )
问题:
1) 如何在此线程中将grep command 的结果用于我的nc 命令?
2) 我可以说grep 的结果是一个 ip 只能在下面的整个语句中使用,就像我在这里所做的那样?
(echo "exit" | nc <IP-HERE> 23 -w 5 \
if [ "$?" -eq "0" ]; then
(
<SomeCommandsHERE>
) | nc <IP-HERE> 23 1>>$file 2>&1 )
更新
到目前为止我尝试了什么:
<COMMAND> | \
grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])' | \
while read ip; do
( echo "exit" | nc "$ip" 23 -w 5
[[ "$?" -eq "0" ]]
(
echo "hello"
) | nc "$ip" 23 1>>$file 2>&1
); done
这是正确的吗?如果if 语句不正确,我该如何更改?
【问题讨论】:
标签: linux bash redirect stdout pipeline