gpt4 book ai didi

linux - 在 nc 连接和括号中的命令中使用来自管道命令的标准输出

转载 作者:太空宇宙 更新时间:2023-11-04 11:08:24 25 4
gpt4 key购买 nike

我想知道如何从管道命令使用 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) 如何在此线程中为我的 nc 命令使用 grep 命令 的结果?

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 语句不正确,我该如何更改?

最佳答案

如果你传递 <COMMAND> 的输出对于一个循环,您可以一次评估它一行:

<COMMAND> | while read text; do
ipaddr=`echo $text | 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])'`
if [ $? -eq 0 ]; then
(echo "exit" | nc $ipaddr 23 -w 5
if [ $? -eq 0 ]; then
(
<SomeCommandsHERE>
) | nc $ipaddr 23 1>>$file 2>&1
fi
)
fi
done

关于linux - 在 nc 连接和括号中的命令中使用来自管道命令的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24216940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com