LINUX.ORG.RU

script for interactive command


0

0

Нужно желательно на шелле (или любом другом скриптовом, если не получится) работать с интерактивными командами - как?

Элементарный пример: ввод пароля в ssh (знаю про auth keys, просто пример).

anonymous

Ответ на: Re: script for interactive command от wfrr

Re: script for interactive command

точнее так

read -p "Press 'y' to install the bcm963xx DSL router source files: " -n 1 dr_continue
        echo ""
        echo ""
        if [ "$dr_continue" == "y" ] ; then
            echo ""
            if ! [ -d $bi_src_dir ] ; then
                echo "Creating directory $bi_src_dir."
                echo ""
                mkdir -p $bi_src_dir
            fi
            if [ -d $bi_src_dir ] ; then
                echo "Installing files from $bi_this_dir/$f."
                echo ""
                cd $bi_src_dir
                tar xfz $bi_this_dir/$f
                chmod -R 777 * .*
            else

wfrr ★★☆ ()
Ответ на: Re: script for interactive command от anonymous

Re: script for interactive command

>ссылка тут при чем? 

По ссылке выше приведенный код.

>нужно не читать, а писать.

Хм, тогда попробовать направлять пайпом .

radws% echo 'test'|read test_var
radws% echo $test_var
test

wfrr ★★☆ ()
Ответ на: Re: script for interactive command от wfrr

Re: script for interactive command

> radws% echo 'test'|read test_var

это не работает, потому что это пайп, и read должен запускаться в шелле-подпроцессе, соответственно переменная считается в нем и останется неизменной в родительском шелле.

dilmah ★★★★★ ()

Re: script for interactive command

man expect, видимо

anonymous ()

Re: script for interactive command

> Нужно желательно на шелле (или любом другом скриптовом, если не получится) работать с интерактивными командами - как?

> Элементарный пример: ввод пароля в ssh (знаю про auth keys, просто пример).

Лучше примеров побольше: вопрос абсолютно не понятен, коли read не угодил...

Die-Hard ★★★★★ ()
Ответ на: Re: script for interactive command от anonymous

Re: script for interactive command

>да не, не читать говорю, а писать. Ввести пароль после ssh root@localhost автоматом в скрипте.

Дык, просто ssh специально проверяет, чтобы этого не делалось! Если именно это ("наколка" ssh) имелось в виду, то -- никак, видимо. Иначе это будет дыркой в ssh.

Die-Hard ★★★★★ ()
Ответ на: Re: script for interactive command от Die-Hard

Re: script for interactive command

В чем тут "наколка" ssh'у не пойму?

Примеры - да любая прога, запрашивающая пароль или еще чего-нибудь. encfs, ftp, sshfs.

anonymous ()
Ответ на: Re: script for interactive command от Die-Hard

Re: script for interactive command

> Дык, просто ssh специально проверяет, чтобы этого не делалось! Если именно это ("наколка" ssh) имелось в виду, то -- никак, видимо. Иначе это будет дыркой в ssh.

он специально проверяет, да, но если подсунуть ему псевдотерминал, то все должно работать.

С какой стати это дырка в ssh.

dilmah ★★★★★ ()
Ответ на: Re: script for interactive command от anonymous

Re: script for interactive command

Еще раз -- постарайся сформулировать вопрос понятнее, или жди гения :-). Моего интеллекта не хватает, чтобы понять твой вопрос.

Слова

> ...да любая прога, запрашивающая пароль или еще чего-нибудь. ...

вкупе с

> нужно не читать, а писать.

ставят меня в тупик :-)

Die-Hard ★★★★★ ()
Ответ на: Re: script for interactive command от dilmah

Re: script for interactive command

>и read должен запускаться в шелле-подпроцессе, соответственно переменная считается в нем и останется неизменной в родительском шелле.

radws% echo 'blasasa'|./test.sh blasasa radws% cat test.sh #!/bin/bash

read test_var echo $test_var

Что еще не так?

wfrr ★★☆ ()
Ответ на: Re: script for interactive command от wfrr

Re: script for interactive command

radws% echo 'blasasa'|./test.sh
blasasa
radws% cat test.sh
#!/bin/bash

read test_var
echo $test_var

Злобное форматирование, в ссш ввод пароля не работает, 
таким манером в ssh можно ввести лишь произвольную команду.

wfrr ★★☆ ()
Ответ на: Re: script for interactive command от dilmah

Re: script for interactive command

> ...но если подсунуть ему псевдотерминал, ...

:-)

Тогда в чем вопрос топикстартера?

Как работать из скрипта с интерактивными командами через псевдотерминал, что ли?

Die-Hard ★★★★★ ()
Ответ на: Re: script for interactive command от Die-Hard

Re: script for interactive command

> нужно не читать, а писать.

Ну, тот-же пароль мы-же не читаем, а пишем программе.

Буду конкретен: выполнить набор команд по ssh без ключей. Т.е. ответить 'yes' на вопрос о продолжении коннекта, если это первое соединение, набрать пароль и выполнить команды.

# ssh root@172.16.0.1
The authenticity of host '172.16.0.1 (172.16.0.1)' can't be established.
RSA key fingerprint is 53:28:a2:30:9c:39:04:b7:00:3f:c1:31:55:29:8c:a3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.0.1' (RSA) to the list of known hosts.
root@172.16.0.1's password: <password>

anonymous ()
Ответ на: Re: script for interactive command от anonymous

Re: script for interactive command

> Буду конкретен: выполнить набор команд по ssh без ключей. Т.е. ответить 'yes' на вопрос о продолжении коннекта, если это первое соединение, набрать пароль и выполнить команды.

буду повторяться: http://empty.sourceforge.net/

dilmah ★★★★★ ()
Ответ на: Re: script for interactive command от Die-Hard

Re: script for interactive command

> Тогда в чем вопрос топикстартера?

> Как работать из скрипта с интерактивными командами через псевдотерминал, что ли?

Видимо, да. Не знал про них))

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.