Netcat Nc命令在其上工作';s自身-但返回的端口范围在bash脚本中无效

Netcat Nc命令在其上工作';s自身-但返回的端口范围在bash脚本中无效,netcat,Netcat,因此,我可以通过键入以下内容检索打印机固件并将其保存到文档: echo '! U1 getvar "appl.name"' | nc -i2 10.67.12.144 5964>doc 但是,如果我尝试检查文件(IP)中的打印机列表,我会得到“端口范围无效” for i in `cat $1` do echo -n "$i " echo‘! U1 getvar "appl.name"’ | nc -i2 $1 5964>doc done 我可能在这里做了一些愚蠢的事情,但我就是想

因此,我可以通过键入以下内容检索打印机固件并将其保存到文档:

echo '! U1 getvar "appl.name"' | nc -i2 10.67.12.144 5964>doc
但是,如果我尝试检查文件(IP)中的打印机列表,我会得到“端口范围无效”

for i in `cat $1`
do
echo -n "$i "
echo‘! U1 getvar "appl.name"’ | nc -i2 $1 5964>doc
done

我可能在这里做了一些愚蠢的事情,但我就是想不出错误是什么?

您可以使用
read
和while循环从作为第一个命令行参数提供的文件中读取每一行。如果文件每行包含一个ip地址:

while read ip; do
    echo -n "$ip "
    echo '! U1 getvar "appl.name"' | nc -i2 $ip 5964 > doc
done < "$1"
读取ip时
;做
echo-n“$ip”
回声!U1 getvar“appl.name”| nc-i2$ip 5964>doc
完成<“$1”

请发布您试图从脚本读取的文件内容。你用的是哪个外壳?顺便说一句,
nc
$1
参数可能应该是
$i
。嗨,赫尔曼,谢谢你的回复,在文件中我有几个测试打印机IP的10.67.12.144 10.67.12.145,如果脚本名为X,打印机列表名为Y,我像这样运行脚本。/X Y我在上面粘贴了完整的脚本-我的目标是从Y文件中读取并将打印机IP及其固件版本回送到一个名为doc的文件中。非常好的方法,谢谢你的帮助Herman