сохраните текст в file.txt
и выполните эту команду:
awk 'p; /====/ $p' file.txt | tail -3
выход:
3rd run of script
End of 3rd script
Встраивание замены в командные строки приводит к уязвимостям внедрения команд . Это то, что вы видите в действии :вместо (просто ), используемого в качестве строкового аргумента для curl
, содержимое result
анализируется как код.
Чтобы предотвратить это, вы можете использовать (сосредоточение внимания только на главной проблеме; возможны другие улучшения):
printf '%s\n' "$result" | xargs -P50 -I@ bash -c 'printf "%s %s\n" "$1" \
"$(curl --write-out "%{http_code}" -L -s --output /dev/null "$1")"' mybash @