Я предполагаю, что вы используете bash, так что это должно работать лучше:
for ((i=1;i<=5;i++))
do
sed -n "$i p" hosts.txt | (
read output
touch "$output.txt"
date >> "$output.txt"
printf "\nComeçando o teste de $output."
printf "\nTeste em andamento."
ping -c 10 -i 1 "$output" >> "$output.txt"
)
done
Вы столкнулись с проблемой bash
, как и большинство интерпретаторов оболочки за пределами ksh
помещают все компоненты конвейера в подоболочку, поэтому output
переменная сразу же теряется после установки.
Также обратите внимание, что я исправил ваш цикл для
, который, как написано, имел неопределенное поведение, поскольку переменная i
не была инициализирована.