Я пытаюсь написать сценарий, который извлекает данные из файла «nohup.out», используя tail -f и выполняя команду dig при условии.Передайте аргумент, если условие используется в трубе
#!/bin/bash
nohup proxychains firefox
tail -f nohup.out | xargs if [[ {} == *"denied"* ]]
then
dig -x `cut -d '-' -f 6 {} | cut -d ':' -f 1`&;
fi
Выход nohup.out является
| S-цепи | - <> -10.1.1.16: 80- <> <> -93.184.220.29: 80- < --denied
| S-цепи | - <> -10.1.1.16: 80- <> <> -93.184.220.29: 80- < --denied
| S-цепи | - <> -10.1.1.16: 80- <> <> -216.58.209.77: 443- <> <> -OK
| S-цепи | - <> -10.1.1.16: 80- <> <> - 46.28.247.89:443- <> <> -OK
с ниже команды я могу извлечь IP для обратного DNS поиска.
cut -d '-' -f 6 | cut -d ':' -f 1
Я не могу найти способ передать аргумент cut и if command.
Проблема очень похожа на ту, что в [Почему я не могу использовать Unix 'nohup' с Bash' for' loop?] (Http://stackoverflow.com/questions/3099092/), и ответ и обходной путь практически одинаковый. Вероятно, вам также необходимо использовать 'xargs -I '{}' ...'. –
nohup используется для запуска firefox с proxychains здесь, это не имеет никакого отношения к более позднему скрипту. В более позднем скрипте я читаю вывод nohup.out. – DarKnight
Я этого не говорил; но проблема в другом вопросе заключается в том, как использовать встроенный Bash - в этом случае цикл 'for' вместо оператора' if' в этом случае - с командой, которая принимает другую команду в качестве аргумента ('nohup 'в другом вопросе,' xargs' в этом вопросе). Тот факт, что ваша команда 'tail -f' читает' nohup.out', полностью тангенциальна. –