Управляющие символы TTY, отправленные на стандартный ввод sh, не работают

Я предполагаю, что вы используете 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 не была инициализирована.

1
12.06.2015, 01:22
0 ответов

Теги

Похожие вопросы