Считаете, что Ubuntu недостаточно дружелюбна к новичкам? Помогите создать новое Руководство для новичков!
0 Пользователей и 1 Гость просматривают эту тему.
Да у меня все время такой заголовок при использовании скрипта с expect
./name-script.sh
expect -f ./name-script.sh
cat ./name-script.sh
alex@srv:~/scripts$ expect -f ./passwd_x11vnc_v2.shsystem(mkdir -p /home/alex/lamp-7 /home/alex/.vnc1) = 2spawn x11vnc -storepasswd /home/alex/.vnc1/passwd-test9parent: waiting for sync byteparent: telling child to go aheadparent: now unsynchronized from childspawn: returns {4754}expect: does "" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noEnter VNC password: expect: does "Enter VNC password: " (spawn_id exp6) match glob pattern "Write*"? no"password:"? yesexpect: set expect_out(0,string) "password:"expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) "Enter VNC password:"send: sending "12345678\r" to { exp6 }expect: does " " (spawn_id exp6) match glob pattern "Write*"? no"password:"? no12345678expect: does " 12345678\r\n" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noVerify password: expect: does " 12345678\r\n\r\nVerify password: " (spawn_id exp6) match glob pattern "Write*"? no"password:"? yesexpect: set expect_out(0,string) "password:"expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) " 12345678\r\n\r\nVerify password:"send: sending "12345678\r" to { exp6 }expect: does " " (spawn_id exp6) match glob pattern "Write*"? no"password:"? noexpect: does " \r\n" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noWrite password to /home/alex/.vnc1/passwd-test9? [y]/n expect: does " \r\nWrite password to /home/alex/.vnc1/passwd-test9? [y]/n " (spawn_id exp6) match glob pattern "Write*"? yesexpect: set expect_out(0,string) "Write password to /home/alex/.vnc1/passwd-test9? [y]/n "expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) " \r\nWrite password to /home/alex/.vnc1/passwd-test9? [y]/n "send: sending "y\r" to { exp6 }send: sending "exit\r" to { exp6 }alex@srv:~/scripts$ clearalex@srv:~/scripts$ expect -f ./passwd_x11vnc_v2.shsystem(mkdir -p /home/alex/lamp-7 /home/alex/.vnc1) = 2spawn x11vnc -storepasswd /home/alex/.vnc1/passwd-test9parent: waiting for sync byteparent: telling child to go aheadparent: now unsynchronized from childspawn: returns {4797}expect: does "" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noEnter VNC password: expect: does "Enter VNC password: " (spawn_id exp6) match glob pattern "Write*"? no"password:"? yesexpect: set expect_out(0,string) "password:"expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) "Enter VNC password:"send: sending "12345678\r" to { exp6 }expect: does " " (spawn_id exp6) match glob pattern "Write*"? no"password:"? no12345678expect: does " 12345678\r\n" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noVerify password: expect: does " 12345678\r\n\r\nVerify password: " (spawn_id exp6) match glob pattern "Write*"? no"password:"? yesexpect: set expect_out(0,string) "password:"expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) " 12345678\r\n\r\nVerify password:"send: sending "12345678\r" to { exp6 }expect: does " " (spawn_id exp6) match glob pattern "Write*"? no"password:"? noexpect: does " \r\n" (spawn_id exp6) match glob pattern "Write*"? no"password:"? noWrite password to /home/alex/.vnc1/passwd-test9? [y]/n expect: does " \r\nWrite password to /home/alex/.vnc1/passwd-test9? [y]/n " (spawn_id exp6) match glob pattern "Write*"? yesexpect: set expect_out(0,string) "Write password to /home/alex/.vnc1/passwd-test9? [y]/n "expect: set expect_out(spawn_id) "exp6"expect: set expect_out(buffer) " \r\nWrite password to /home/alex/.vnc1/passwd-test9? [y]/n "send: sending "y\r" to { exp6 }send: sending "exit\r" to { exp6 }
alex@srv:~/scripts$ cat ./passwd_x11vnc_v2.sh #!/usr/bin/expect -f exp_internal 1 set pass "12345678" set myhome "$env(HOME)" system "mkdir -p $myhome/lamp-7 $myhome/.vnc1" spawn x11vnc -storepasswd $myhome/.vnc1/passwd-test9 while {1} { expect { "Write*" { send "y\r" send "exit\r" break } "password:" {send "$pass\r"} } } wait close $spawn_idalex@srv:~/scripts$
alex@srv:~/scripts$ which expect /usr/bin/expect
echo -e '#!/usr/bin/awk -f\nBEGIN{\nprint 10/3\n}' > test
chmod +x test
./test
echo -e ' #!/usr/bin/awk -f\nBEGIN{\nprint 10/3\n}' > test
bash: ./test: Отказано в доступе
alex@srv:~/tmp$ ./test./test: строка 2: BEGIN{: команда не найденаWarning: unknown mime-type for "10/3" -- using "application/octet-stream"Error: no such file "10/3"./test: строка 4: ошибка синтаксиса около неожиданной лексемы `}'./test: строка 4: `}'
Вывод: Перед шабангом НЕ должно быть пробелов.Поэтому у тебя и скрипт expect не запускался.
#!/usr/bin/expect -f#exp_internal 1 set pass "12345678" set myhome "$env(HOME)" system "mkdir -p $myhome/lamp-8 $myhome/.vnc1" spawn x11vnc -storepasswd $myhome/.vnc1/passwd-test9 while {1} { expect { "Write*" { send "y\r" send "exit\r" break } "password:" {send "$pass\r"} } } wait close $spawn_id
Страница сгенерирована за 0.038 секунд. Запросов: 23.