Форум программистов, компьютерный форум, киберфорум
Наши страницы
Shell, Bash
Войти
Регистрация
Восстановить пароль
 
Sikrest
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 10
1

Цикл While в Expect

11.02.2020, 13:32. Просмотров 186. Ответов 5
Метки нет (Все метки)

Приветствую.
Есть проблема с циклом While.

Суть задачи (проблемы): при появлении надписи "---- More ----" в консоли нажимать пробел нужное кол-во раз (пока перестанет появляться "---- More ----").
Если нужно нажать 1 раз это не проблема, но вот когда нужно не известное кол-во раз... Не знаю как правильно написать цикл что бы сработал Ниже последний не рабочий вариант на котором остановился.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
 
HOSTS=$(< /home/user/scripts/hosts.txt)
USR="LOGIN"
PWD="PASS"
#Файл логов:
    LOG="ssh_conn.log"
#Цикл переборки хостов и подключение
    for IP in $HOSTS
    do
#Вывод даты старта скрипта:
    echo START SCRIPT: >> $LOG
    date +%x-%R >> $LOG
#Команды для expect:
    COMM="
#Включение и вывод отладки expect:
    log_file debug.log
    exp_internal 1
#Время ожидание expect
    set timeout 9
#Соединение ssh
    spawn ssh $IP
    expect \"*(yes/no)?*\" {send \"yes\r\"}
    expect \"password:\"
    send \"$PWD\r\"
#Выполняемые команды:
    expect \"*>\"
    send \"dis int brief\r\"
    while {expect{
    \"*---- More ----*\" {send \" \"}
    }}
    expect \"*>\"
    send \"quit\r\"
#Завершение выполнения expect:
    expect eof
    "
#Запуск expect с набором команд:
    expect -c "$COMM" >> $LOG
#Вывод разделителя:
    echo ========================================================================= >> $LOG
done
Код отладчика после выполнения кода выше

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
wrong # args: should be "while test command"
    while executing
"while {expect{
        "*---- More ----*" {send " "}
        }}"
argv[0] = expect  argv[1] = -c  argv[2] = 
#pect:
        log_file debug.log
        exp_internal 1
#xpect
        set timeout 9
#h
        spawn ssh 
        expect "*(yes/no)?*" {send "yes\r"}
        expect "password:"
        send "PASS\r"
#
 
        expect "*>"
        send "dis int brief\r"
 
        while {expect{
        "*---- More ----*" {send " "}
        }}
 
        expect "*>"
        send "quit\r"
#pect:
        expect eof
          
set argc 0
set argv0 "expect"
set argv ""
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2020, 13:32
Ответы с готовыми решениями:

TCL, Expect
Как можно одновременно подключиться к нескольким машинам по SSH используя Expect-скрипт. Моя идея...

Expect запуск bash
/usr/bin/expect &lt;&lt;EOF spawn ssh -p 22 $userloc@$ip expect &quot;password&quot; send...

Invalid command name в expect
Всем привет, написал скрип который должен по идее в telnet включать логи и слушать их: #!/bin/bash...

Составить скрипт expect для sqlmap
Вообщем, man expect почему то просто спамит ответы.. т.е. без всякого сравнения вопросов и так...

Как в expect выполнить sudo с вводом пароля?
Здравствуйте. Как с помощью expect выполнить команду под sudo, т.е. например такую: sudo mkdir...

5
Marinero
Модератор
Эксперт NIX
2501 / 1883 / 635
Регистрация: 02.03.2015
Сообщений: 6,120
12.02.2020, 13:29 2
Что-то совсем не то Вы делаете. Вообще вывод "---- More ----" это не сообщение и может вообще не обрабатываться expect
Если Вам не нужен вывод команды посылайте "q" - зачем пробелы жать?
0
Sikrest
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 10
12.02.2020, 17:31  [ТС] 3
Вывод "---- More ----" читается.
Это я вижу по отладке. Так же это подтверждается отправкой " " после считывания "---- More ----", т.к в логе есть последующий вывод.

Не понял про отправку "q".
Так: send "q\r" ?
0
Marinero
Модератор
Эксперт NIX
2501 / 1883 / 635
Регистрация: 02.03.2015
Сообщений: 6,120
13.02.2020, 12:37 4
Bash
1
man more
COMMANDS
Interactive commands for more are based on vi(1). Some commands may be preceded by a decimal number, called k
in the descriptions below. In the following descriptions, ^X means control-X.
...
SPACE
Display next k lines of text. Defaults to current screen size.
...
q or Q or INTERRUPT
Exit.
Добавлено через 3 минуты
Цитата Сообщение от Sikrest Посмотреть сообщение
Вывод "---- More ----" читается.
Это я вижу по отладке.
А я например не вижу.
Цитата Сообщение от Sikrest Посмотреть сообщение
в логе есть последующий вывод
А в логе есть "---- More ----" ?

Добавлено через 7 минут
I try not to use the while loops with the expect command. I see people do this a lot and many times it is not needed. The expect command itself is a loop. It will keep looping through the output looking for a match. You can act on any matches and keep performing more matches and actions. Expect has a default timeout of 10 secs when looping through looking for a match. If there is never a match it will timeout and you can set an action to this timeout if you want.
https://pantz.org/software/expect/expect_examples_and_tips.html
0
Sikrest
0 / 0 / 0
Регистрация: 16.08.2019
Сообщений: 10
13.02.2020, 13:52  [ТС] 5
Цитата Сообщение от Marinero Посмотреть сообщение
А в логе есть "---- More ----" ?
Да, я не стал вставлять полный вывод. Посчитал что конец отладки важней... Исправляюсь. Вывод не много подрезал, не давал опубликовать сообщение.

Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
spawn ssh 172.19.*.*
parent: waiting for sync byte
parent: telling child to go ahead
parent: now unsynchronized from child
spawn: returns {24242}
 
expect: does "" (spawn_id exp8) match glob pattern "*(yes/no)?*"? no
User Authentication
 
Password: 
expect: does "User Authentication\r\r\nPassword: " (spawn_id exp8) match glob pattern "*(yes/no)?*"? no
expect: timed out
 
expect: does "User Authentication\r\r\nPassword: " (spawn_id exp8) match glob pattern "password:"? no
expect: timed out
send: sending "PASS\r" to { exp8 }
 
expect: does "User Authentication\r\r\nPassword: " (spawn_id exp8) match glob pattern "*>"? no
 
 
expect: does "User Authentication\r\r\nPassword: \r\n" (spawn_id exp8) match glob pattern "*>"? no
 
Info: The max number of VTY users is 10, and the number
      of current VTY users on line is 1.
expect: does "User Authentication\r\r\nPassword: \r\n\r\nInfo: The max number of VTY users is 10, and the number\r\n      of current VTY users on line is 1." (spawn_id exp8) match glob pattern "*>"? no
 
      The current login time is 2020-02-13 18:09:12+00:00.
expect: does "User Authentication\r\r\nPassword: \r\n\r\nInfo: The max number of VTY users is 10, and the number\r\n      of current VTY users on line is 1.\r\n      The current login time is 2020-02-13 18:09:12+00:00." (spawn_id exp8) match glob pattern "*>"? no
 
<SW_NAME>
expect: does "User Authentication\r\r\nPassword: \r\n\r\nInfo: The max number of VTY users is 10, and the number\r\n      of current VTY users on line is 1.\r\n      The current login time is 2020-02-13 18:09:12+00:00.\r\n<WiFi_COD_5720>" (spawn_id exp8) match glob pattern "*>"? yes
expect: set expect_out(0,string) "User Authentication\r\r\nPassword: \r\n\r\nInfo: The max number of VTY users is 10, and the number\r\n      of current VTY users on line is 1.\r\n      The current login time is 2020-02-13 18:09:12+00:00.\r\n<WiFi_COD_5720>"
expect: set expect_out(spawn_id) "exp8"
expect: set expect_out(buffer) "User Authentication\r\r\nPassword: \r\n\r\nInfo: The max number of VTY users is 10, and the number\r\n      of current VTY users on line is 1.\r\n      The current login time is 2020-02-13 18:09:12+00:00.\r\n<WiFi_COD_5720>"
send: sending "dis int br\r" to { exp8 }
 
expect: does "" (spawn_id exp8) match glob pattern "*---- More ----*"? no
d
expect: does "d" (spawn_id exp8) match glob pattern "*---- More ----*"? no
i
expect: does "di" (spawn_id exp8) match glob pattern "*---- More ----*"? no
s
expect: does "dis" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
expect: does "dis " (spawn_id exp8) match glob pattern "*---- More ----*"? no
i
expect: does "dis i" (spawn_id exp8) match glob pattern "*---- More ----*"? no
n
expect: does "dis in" (spawn_id exp8) match glob pattern "*---- More ----*"? no
t
expect: does "dis int" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
expect: does "dis int " (spawn_id exp8) match glob pattern "*---- More ----*"? no
b
expect: does "dis int b" (spawn_id exp8) match glob pattern "*---- More ----*"? no
r
expect: does "dis int br" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
PHY: Physical
expect: does "dis int br\r\nPHY: Physical" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
*down: administratively down
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
#down: LBDT down
(l): loopback
(s): spoofing
(E): E-Trunk down
(b): BFD down
(e): ETHOAM down
(dl): DLDP down
(lb): LBDT block
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
InUti/OutUti: input utility/output utility
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
Interface                   PHY   Protocol  InUti OutUti   inErrors  outErrors
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
Eth-Trunk1                  up    up        0.01%     0%          0          0
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors\r\nEth-Trunk1                  up    up        0.01%     0%          0          0" (spawn_id exp8) match glob pattern "*---- More ----*"? no
 
GigabitEthernet1/0/18       down  down         0%     0%          0          0
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors\r\nEth-Trunk1                  up    up        0.01%     0%          0          0\r\n  XGigabitEthernet1/0/1     up    up        0.01%     0%          0          0\r\n  XGigabitEthernet2/0/1     up    up        0.01%     0%          0          0\r\nGigabitEthernet1/0/1        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/2        up    up           0%     0%          0          0\r\nGigabitEthernet1/0/3        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/4        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/5        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/6        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/7        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/8        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/9        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/10       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/11       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/12       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/13       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/14       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/15       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/16       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/17       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/18       down  down         0%     0%          0          0" (spawn_id exp8) match glob pattern "*---- More ----*"? no
  ---- More ----
expect: does "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors\r\nEth-Trunk1                  up    up        0.01%     0%          0          0\r\n  XGigabitEthernet1/0/1     up    up        0.01%     0%          0          0\r\n  XGigabitEthernet2/0/1     up    up        0.01%     0%          0          0\r\nGigabitEthernet1/0/1        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/2        up    up           0%     0%          0          0\r\nGigabitEthernet1/0/3        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/4        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/5        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/6        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/7        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/8        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/9        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/10       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/11       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/12       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/13       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/14       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/15       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/16       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/17       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/18       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/19       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/20       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/21       down  down         0%     0%          0          0\r\n  ---- More ----" (spawn_id exp8) match glob pattern "*---- More ----*"? yes
expect: set expect_out(0,string) "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors\r\nEth-Trunk1                  up    up        0.01%     0%          0          0\r\n  XGigabitEthernet1/0/1     up    up        0.01%     0%          0          0\r\n  XGigabitEthernet2/0/1     up    up        0.01%     0%          0          0\r\nGigabitEthernet1/0/1        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/2        up    up           0%     0%          0          0\r\nGigabitEthernet1/0/3        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/4        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/5        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/6        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/7        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/8        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/9        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/10       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/11       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/12       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/13       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/14       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/15       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/16       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/17       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/18       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/19       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/20       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/21       down  down         0%     0%          0          0\r\n  ---- More ----"
expect: set expect_out(spawn_id) "exp8"
expect: set expect_out(buffer) "dis int br\r\nPHY: Physical\r\n*down: administratively down\r\n#down: LBDT down\r\n(l): loopback\r\n(s): spoofing\r\n(E): E-Trunk down\r\n(b): BFD down\r\n(e): ETHOAM down\r\n(dl): DLDP down\r\n(lb): LBDT block\r\nInUti/OutUti: input utility/output utility\r\nInterface                   PHY   Protocol  InUti OutUti   inErrors  outErrors\r\nEth-Trunk1                  up    up        0.01%     0%          0          0\r\n  XGigabitEthernet1/0/1     up    up        0.01%     0%          0          0\r\n  XGigabitEthernet2/0/1     up    up        0.01%     0%          0          0\r\nGigabitEthernet1/0/1        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/2        up    up           0%     0%          0          0\r\nGigabitEthernet1/0/3        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/4        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/5        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/6        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/7        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/8        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/9        down  down         0%     0%          0          0\r\nGigabitEthernet1/0/10       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/11       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/12       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/13       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/14       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/15       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/16       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/17       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/18       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/19       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/20       down  down         0%     0%          0          0\r\nGigabitEthernet1/0/21       down  down         0%     0%          0          0\r\n  ---- More ----"
send: sending " \r" to { exp8 }
                                          GigabitEthernet1/0/22       down  down         0%     0%          0          0
GigabitEthernet1/0/44       down  down         0%     0%          0          0
GigabitEthernet1/0/45       down  down         0%     0%          0          0
  ---- More ----                                          GigabitEthernet1/0/46       down  down         0%     0%          0          0
  ---- More ----expect: timed out
argv[0] = expect  argv[1] = -c  argv[2] = 
#Âêëþ÷åíèå è âûâîä îòëàäêè expect:
    log_file debug.log
    exp_internal 1
#Âðåìÿ îæèäàíèå expect
    set timeout 15
#Ñîåäèåíèå ssh
    spawn ssh 172.19.*.*
    expect "*(yes/no)?*" {send "yes\r"}
    expect "password:"
    send "PASS\r"
#Âûïîëíÿåìûå êîìàíäû:
    expect "*>"
    send "dis int br\r"
    expect "*---- More ----*" 
    send " \r"
#Çàâåðøåíèå âûïîëíåíèÿ expect:
    expect eof
      
set argc 0
set argv0 "expect"
set argv ""


Цитата Сообщение от Marinero Посмотреть сообщение
I try not to use the while loops with the expect command. I see people do this a lot and many times it is not needed. The expect command itself is a loop. It will keep looping through the output looking for a match. You can act on any matches and keep performing more matches and actions. Expect has a default timeout of 10 secs when looping through looking for a match. If there is never a match it will timeout and you can set an action to this timeout if you want.
Если я правильно понял, то при интерактиве (выводе одинаковых запросов) важно что бы они попали в 10 сек, иначе выставить тийм аут вручную через set timeout.
0
Marinero
Модератор
Эксперт NIX
2501 / 1883 / 635
Регистрация: 02.03.2015
Сообщений: 6,120
14.02.2020, 13:32 6
Неправильно поняли. Автор как раз и говорит, что expect сам по сабе является циклом и использовать дополнительно еще внутри него циклы в большинстве случаев нет необходимости. Более того это ведет к неправильной работе программы. Ваш случай - наглядный пример стоит только внимательно рассмотреть приведенный Вами лог.
1. Дайте время отработать команде dis ... (вставьте паузу)
2. Вместо многочисленных пробелов стоит использовать единственную q - выход
3. Если надо просто выполнить команду на удаленном хосте какой смысл вообще завязываться с expect?
0
14.02.2020, 13:32
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2020, 13:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Выполнение локального скрипта на удаленной машине средствами Expect, Bash, SSH
Уважаемые знатоки! Есть задача, выполнить небольшой скрипт на удаленных машинах. Соединение ssh...

EXPECT передача переменной скрипту
Здравствуйте. Как реализовать передачу переменной скрипту. Ну например есть скрипт: ...

ошибка связанная с expect в задачке - Я вас знаю
Вот сама задача В языке Python функция input() имеет опциональный аргумент, который выводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.