Я решил сделать сценарий оболочки для основного nmap, сканирующего, таким образом, я сделал это как это:
#!/bin/bash
sudo apt-get install nmap
printf "enter the name of site to do basic scan on >>>"
read NAME
nmap $NAME
echo "Do you wish to do Software Version scan?"
select yn in "Yes" "No"; do
case $yn in
Yes ) goto 17; break;;
No ) exit;;
nmap $NAME -sV
echo "Do you wish to do OS scan?"
select yn in "Yes" "No"; do
case $yn in
Yes ) goto 25; break;;
No ) exit;;
nmap $NAME -O
Но вывод был:
Nmap done: 1 IP address (1 host up) scanned in 109.97 seconds
Do you wish to do Software Version scan?
./nmap-basic.sh: line 17: syntax error near unexpected token `$NAME'
./nmap-basic.sh: line 17: `nmap $NAME -sV'
Какие-либо решения?
Ваш сценарий оболочки имеет большую проблему, я переписываю это для Вас.
#!/bin/bash
echo -en "Enter name of website ?"
read name
echo -e "\e[93mScanning...\e[0m"
nmap $name
# software Scan
echo "############################################"
echo "Do you wish to do Software Version scan?"
read ans
if [ "$ans" = "yes" ] || [ "$ans" = "YES" ]
then
echo "############################################"
echo -e "\e[91m Software Scanning...\e[0m"
nmap -sV $name
fi
## OS Scan
echo "Do you wish to do OS scan?"
read ans
if [ "$ans" = "yes" ] || [ "$ans" = "YES" ]
then
echo -e "\e[92m OS Scanning...\e[0m"
sudo nmap -O $name
fi
exit 0
на самом деле Вы не должны выбирать команду, потому что в случае "нет" у Вас нет работы, чтобы сделать, и можно использовать break|continue в цикле не в случае, если оператор. я добавил некоторый цвет для создания этого красотой. весело проведите время брат
case
в ударе должен закончиться в esac
, select
должен закончиться в done
. Я не вижу тех ключевых слов в Вашем сценарии.
select NAME [in WORDS ... ;] do COMMANDS; done
case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac