Вот код с развернутым логом (exp_internal 1)
#!/usr/bin/expect
set pass "12345678"
set myhome "$env(HOME)"
exp_internal 1
send "mkdir -p $myhome/lamp-5 $myhome/.vnc\r"
spawn x11vnc -storepasswd $myhome/.vnc/passwd-test
while {1} {
expect {
"Write*" {
send "y\r"
send "exit\r"
break
}
"password:" {send "$pass\r"}
}
}
wait
close $spawn_id
Вот ошибки
./passwd_x11vnc_v2.sh: строка 5: exp_internal: команда не найдена
./passwd_x11vnc_v2.sh: строка 6: send: команда не найдена
./passwd_x11vnc_v2.sh: строка 7: spawn: команда не найдена
./passwd_x11vnc_v2.sh: строка 14: ошибка синтаксиса около неожиданной лексемы `}'
./passwd_x11vnc_v2.sh: строка 14: ` }'
Пользователь добавил сообщение 23 Апреля 2017, 20:08:07:
2-й рабочий вариант скрипта, предложенный участником форума с логином
renzrvЯ немного переделал, добавил условие на проверку существования,
создаваемых каталогов(иначе в консоли появляются предупреждения
о существовании такого каталога)
И сделал окончание скрипта другим, иначе вывод в консоль, по окончании работы
скрипта, идет в одну строку с результатом работы
и строкой приглашения в консоль
#!/bin/bash
dir=~/.vnc
mdir=~/lamp-5
[ -d "$dir" ] || mkdir "$dir";
[ -d "$mdir" ] || mkdir "$mdir";
expect <<\EOF
#exp_internal 1
set timeout 2
set dir "$env(HOME)/.vnc/passwd-test7"
set pass "12345678"
spawn x11vnc -storepasswd $dir
expect "Enter VNC password:" {send "$pass\r"}
expect "Verify password:" {send "$pass\r"}
expect "Write password to*" {send "y\r"}
sleep 1
#close $spawn_id
send "exit\r"
expect eof
EOF