我正试图从乔治亚·维德曼的书中创作一个bash脚本。我的xp目标机器和kali机器已经启动并运行。
#!/bin/bash
if [ "$1" == "" ]
then
echo "Usage: ./pingscript.sh [network]"
echo "example: ./pingscript.sh 192.168.x.x"
else
for x in 'seq 1 254'; do
ping -c 1 $1.$x | grep "64 bytes" | cut -d" " -f4 | sed 's/.$//'
done
fi
我不知道
8.8.8.8
应该是xp的ip地址还是网关地址,但是当我知道./pingscript.sh 192.168.x.x
的时候,我应该得到一个响应,但是它却告诉我Ping unknown host
。有人帮忙吗?
最佳答案
这里是shellcheck:
Line 7:
for x in 'seq 1 254'; do
^-- SC2041: This is a literal string. To run as a command, use $(..) instead of '..' .
引用其wiki:
其目的是运行单引号中的代码。这可能适用于倾斜的倒勾,
`..`
,但这里使用了非常相似的单引号,导致字符串文本而不是命令输出。这是backticks的许多问题之一,因此最好使用
'..'
展开命令。换句话说,使用:
for x in $(seq 1 254); do