Остановить команду 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 не отображает список открытых портов
  • nmap не показывает sshd?
  • Почему ufw не применяет правила брандмауэра для трафика, поступающего с виртуальной виртуальной машины VM
  • Можете ли вы отправить TCP-пакет с флагом RST, установленным с помощью IPTABLES, как способ обмануть NMAP, чтобы понять, что порт закрыт?
  • Почему nmap закрыл мою связь?
  • NMAP-зондинг VirtualBox Client
  • Помощь в bash для нескольких потоков
  • Nmap -sn: сканирование или отсутствие сканирования?
  • Запуск nmap через Tor
  • mass_dns: warning: Невозможно определить какие-либо DNS-серверы. Обратный DNS отключен
  • Использование регулярных выражений для анализа адресов ip из журналов
  • Interesting Posts

    временная метка вновь созданного файла в будущем

    Как я могу подсчитать количество раз, когда фраза появляется в файле и форматировать ее аккуратно?

    С несколькими процессами может ли один процесс (p1) отправлять сигнал синхронизации SIGALRM, который принимается двумя или более процессами (p1, p2).?

    Извлеките строки из файла с помощью vim или teminal

    Как установить переменные среды для программы, выполненной с помощью `nohup`?

    Определение статического ip для wlan0 не работает

    запретить использование polkit в списке пользователей

    Как расширить команду в bash, чтобы она расширялась в зависимости от параметров?

    Ошибка входа в gnome после обновления: о нет, что-то пошло не так

    команда выйти из LXDE напрямую

    Ошибка Postfix: еще не разрешено доставлять почту

    Время, которое init ожидает до отправки kill -9 при завершении работы?

    Не удалось имитировать Ctrl + Shift + Fn + F10. Нажмите клавишу \

    stat –format% N кавычек

    Опция вывода аудиовыхода в `pavucontrol` не изменяется автоматически при подключении наушников

    Linux и Unix - лучшая ОС в мире.