我编写了一个脚本来在一系列 IP 范围上运行跟踪路由。当我使用默认选项时(即,当我在没有任何附加选项的情况下运行 traceroute 时),我的脚本运行良好。换句话说:
traceroute "$hostip"
产生所需的结果。
但是,当我使用我需要的选项时,traceroute 无法运行,说明没有提供主机:
traceroute -p 25 -M tcp "$hostip"
Specify "host" missing argument.
我真的很茫然。我尝试了几种不同的组合,但都不起作用。我无法理解为什么这个命令以第一种方式工作,但没有启用选项!
我在 slackware64-current 上有 traceroute-2.0.19-x86_64-1。任何帮助是极大的赞赏!
这是我正在使用的缩短版本:
#!/bin/bash
#
# tracert_efax-smtp.sh
#
# Diego Pineda 8132015
# output
foi='1'
fp='/home/slugman/Data'
fileo="$fp/tracert_efax-smtp.$foi"
# while loop 181 - 183
ip1a="216.24.224."
ip1b="181"
# Create fileo
if [ -e $fileo ]; then
(( foi++ ))
fileo="$fp/tracert_efax-smtp.$foi"
touch $fileo
else
touch $fileo
fi
# test ip1 series
echo "Testing $ip1a$ip1b - 183" >> $fileo
while [ $ip1b -le 183 ]; do
traceroute -p 25 -M tcp "$ip1a$ip1b" >> "$fileo"
(( ip1b++ ))
done