Итак, я использую Bash для вызова скрипта python synFlood для класса. Я хочу включить пользовательский ввод в это, поэтому я использовал Bash (так как мне не разрешалось использовать python). Я назвал свой источник и целевые IP-адреса от пользователя и сохранил их, а затем создал новую переменную для всей строки внутри скрипта python для замены sed.Bash SED, чтобы заменить строку в файле
В настоящее время моя команда работает и заменяет строку. Но когда я заканчиваю скрипт, строка, которую я сказал заменить, по-прежнему является исходной строкой.
Пример:
sourcepath="src = $source" #set user source IP to full path for python script
targetpath="tgt = $target" #set user target IP to full path for python script
sed -e "s/^src.*/$sourcepath/" #replace the src string with sourcepath variable
sed -e "s/^tgt.*/$targetpath/" #replace the tgt string with targetpath variable
python syn.py
Sed заменяет обе строки в моем питона файл на что указывает пользователь; как он показывает это в окне терминала (для тестирования в любом случае окончательный скрипт скроет этот вывод). Но когда я проверяю файл после завершения сценария, ничего не изменилось, и значения по умолчанию все еще существуют.
Действительно ли sed просто изменяет значения только в контексте сценария во время его работы? Если это так, когда я вызываю скрипт python в следующей строке, он будет использовать значения, находящиеся в данный момент там из моих изменений sed, или он будет использовать файлы по умолчанию в сценарии python?
Заранее благодарим за помощь и разъяснение.
Извините, если это сбивает с толку, я просто взял фрагмент кода, а не размещал здесь все строки кода. – undecisive