1
#!/bin/bash
# portcheck tool
usage()
{
echo -e "\n USAGE: ./${0##*/} [host|ip] \n"
exit
}
check_port()
{
local host=${1}
local port=${2}
if [ nc -w 5 -z host port ] && [ nc -w 5 -z host port ]
then
echo -e "\a\n => Port ${port} at ${host} is open"
else
echo -e "\a\n => Port ${port} at ${host} is closed"
fi
}
[[ $# -ne 2 ]] && usage
check_port ${1} ${2}
Когда я запускаю следующую команду:Bash - [: слишком много аргументов
bash portOpenBash.sh 127.0.0.1 434
Я получаю следующее сообщение об ошибке:
portOpenBash.sh: line 14: [: too many arguments
Я пытаюсь поставить кавычки между макро выражения, но я получаю ту же ошибку.
Я предполагаю, что он хочет вернуть проверки для тех, 'nc' код команды на самом деле. Итак, 'если nc -w 5 -z host port && nc -w 5 -z host port'. –
Спасибо @EtanReisner: Я добавил это к моему ответу в случае, если OP этого захочет. – anubhava
Спасибо, должно быть: если nc -w 5 -z $ host $ port && nc -w 5 -z $ host $ port –