Я пытаюсь применить то, что я узнал о сценариях оболочки к инструменту ping, но я, может казаться, не разрабатываю то, что я делаю неправильно.
Я хочу, чтобы мой инструмент ping содержал подсказку, которая создает переменную для целевого сайта и количества пакетов, так, чтобы это было допускающим повторное использование, и не принимало значение по умолчанию к отправке непрерывных пакетов к целевому URL.
Мой текущий сценарий следующие:
#!/bin/bash
echo "The....."
figlet -f banner "Pinger"
echo " "
read -p "[*] Enter the target host: " $TGT
read -p "[*] Enter number of packets to send: " $PKT
ping -c$PKT $TGT
exit0
Этот сценарий не берет целое число для nmap-c флаг.
Я попытался отладить проблему следующими способами:
ping $TGT
работы отлично над своим собственным.
ping -c{$PKT}
не выполняется.
ping -c $PKT
и ping -c {$PKT}
также, не выполняйтесь правильно.
Показанная ошибка:
ping: option requires an arguement -- 'c'
Кто-то может сказать мне, что фиксация так, я могу понять контекст для использования основной переменной?
Во-первых, я игнорирую строки 2-4 из сценария, так как они не важны.
При использовании read
, необходимо дать ему имя переменной (TGT
). Используя знак доллара ($TGT
) относится к значению переменной. В этом случае значение является нулевым, таким образом, read
значения по умолчанию к переменной REPLY
.
Также:
PATH
) и другие специальные переменные (например. RANDOM
).target
и n_packets
exit0
недопустимо, плюс exit 0
замаскирует любые ошибки, которые происходят около конца сценария, плюс exit
неявно, даже не потрудитесь писать это.read -r
хорошая привычка.Таким образом в конце:
#!/bin/bash
read -rp "[*] Enter the target host: " target
read -rp "[*] Enter number of packets to send: " n_packets
ping -c "$n_packets" "$target"
Наконец, Shellcheck очень удобен для отладки сценариев оболочки в будущем. Я запустил Ваш скрипт через него и получил максимум от вышеупомянутых точек.
Относительно синтаксиса Вы попробовали, {$PKT}
, Я думаю, что Вы были перепутаны с ${PKT}
.