Остановить команду bash без сценария убийства

Поэтому у меня есть следующая команда, запущенная из оболочки

~/for ip in $(cat ip_list);do mkdir $ip; cd $ip; for vuln in $(snmap http);do nmap --script=$vuln $ip -oN $vuln;done cd ../ ; done 

и он работает нормально около дня. Это правильно создает каталоги и перемещается через них.

ОДНАКО, один из скриптов теперь висит …

Итак, что бы я хотел сделать, это использовать ключевую команду, подобную CTR + C, которая убьет эту итерацию nmap, но не выйдет из сценария, который работает. Таким образом, мне не нужно начинать все или изменять список ips.

2 Solutions collect form web for “Остановить команду bash без сценария убийства”

Я знаю, что я опубликовал, а затем ответил, но я хотел сохранить этот ответ в случае, если кто-то другой столкнулся с этой проблемой.

То, что я сделал, было из другой оболочки, я запускал ps -a тогда я нашел свой процесс nmap и убил его с kill proc-id . Сценарий продолжался до следующей итерации.

Этот ответ для Баша.

Вы можете использовать ловушку для этого. Это наглядный пример. Чтобы продолжить в цикле, используйте Ctrl + c . Невозможно остановить сценарий, хотя кроме закрытия терминала или его убийства с другого терминала.

 #!/bin/bash trap ps SIGINT for i in abcd; do for j in wxyz; do echo ----$i$j------ && ping stackexchange.com -c 10 done done exit 

Ваш скрипт будет выглядеть примерно так (после некоторых моих улучшений), но заметьте, что он не был протестирован:

 #!/bin/bash trap '' SIGINT for ip in $(cat ip_list); do mkdir $ip && cd $ip && for vuln in $(snmap http);do nmap --script=$vuln $ip -oN $vuln done && cd .. done 

Изменения, введенные мной как && не позволяют вводить логические пути, которые могут привести к ошибке. Если возможно, безопаснее вводить такие ограничения. Когда это делается так:

 mkdir $ip; cd $ip; 

если каталог не может быть создан, то cd приводит к ошибке.

Когда вы выразились так:

 mkdir $ip && cd $ip 

если каталог по какой-либо причине не был создан, то никакие cd будут предприняты. Когда вы сохраняете все команды из mkdir $dir через cd $dir в cd .. прикованный к && , логика понятна и структура не пойдет не так. Когда вы используете ; и не удается создать каталог, тогда вы не можете ввести его, но вы, возможно, не перестанете меняться.

  • Сканирование Nmap для устройств с поддержкой SNMP
  • Как сделать порт кажущимся открытым каждый раз, когда он сканируется с nmap независимо от состояния открытия / закрытия?
  • Помощь в bash для нескольких потоков
  • NMAP-зондинг VirtualBox Client
  • nmap не будет распознавать имя хоста в моей локальной сети
  • nmap не показывает sshd?
  • Выполнение nmap в сети
  • Как увидеть интерактивный вывод при запуске nmap из сценария bash?
  • ICMP: ошибка порта недоступна, даже если порт открыт
  • Запуск nmap через Tor
  • Использование скрипта sql-injection nmap для сканирования определенной веб-папки
  • Linux и Unix - лучшая ОС в мире.