Home > Shell, Unix, загогулины, Программирование, Техноблог > Программерские загогулины [2]

Программерские загогулины [2]

August 23rd, 2007 Leave a comment Go to comments

Очередная программерская загогулина, на этот раз решение сразу не дам :)

Допустим, надо выполнить какую-либо команду на нескольких хостах, перечисленных в файле. Пишу:

cat file | (
while read host; do
ssh user@$host "command"
done
)

Ошибка, однако! В чем?
Кто сможет разобраться в уме, не запуская код, тому респект и уважуха :)

UPD:

Решил человек, скрывающийся под ником gds:

поток из “cat file” будет выкушан только первой запущенной командой “ssh …”?

gds, респект тебе уважуха :)

  1. grif
    August 24th, 2007 at 09:42 | #1

    Чето без запуска никак.
    Но если пальцем в небо то может на @$host ругнуться.?

  2. AlexeySveshnikov
    August 24th, 2007 at 10:02 | #2

    Нет :)

  3. gds
    August 24th, 2007 at 11:54 | #3

    поток из “cat file” будет выкушан только первой запущенной командой “ssh …”?

  4. AlexeySveshnikov
    August 24th, 2007 at 11:55 | #4

    Gds, так точно.

    Блин, так и знал, что не надо на #programming было ссылку оставлять :(

  5. gds
    August 24th, 2007 at 11:57 | #5

    не, ссылка попала от Не киты через аську.

  6. AlexeySveshnikov
    August 24th, 2007 at 12:02 | #6

    А, значит, совпадение :)

  7. gds
    August 24th, 2007 at 12:02 | #7

    кстати вот, сходу не соображу, как сделать так, чтобы один поток попадал в stdin сразу нескольким процессам. tee, что ли, использовать, но как? Если есть хорошее решение — опубликуйте, очень интересно.

  8. AlexeySveshnikov
    August 24th, 2007 at 12:06 | #8

    Да, через tee.
    Меня тоже этот вопрос очень долго волновал, вот тут пример: http://alexey.sveshnikov.ru/blog/2006/11/24/hints-58/

  1. No trackbacks yet.