0
我試圖通過使用Expect包創建自動sh腳本,以便自動安裝我們的產品。正如我計劃的那樣,當安裝過程正在進行時,會發現問題。但是當腳本得到問題時:Enter PushVOD database name (leave blank for default 'pushvod'):
它每次都關閉安裝。 因爲我認爲問題引用 - '
有問題:for default 'pushvod'
Bash和Expect - '正在中斷.sh腳本
但我沒有想法如何解決它。我試着在預期的期望中寫入\'
,也嘗試過用*
寫下期望值,但沒有幫助。腳本無論在這個問題關閉。
#!/bin/bash
#!/bin/expect
#
apt-get --purge remove python-pip
apt-get --purge remove python-setuptools
echo " " > /etc/apt/sources.list
echo "deb http://httpredir.debian.org/debian jessie main" >> /etc/apt/sources.list | echo "deb-src http://httpredir.debian.org/debian jessie main" >> /etc/apt/sources.list | echo "deb http://httpredir.debian.org/debian jessie-updates main" >> /etc/apt/sources.list | echo "deb-src http://httpredir.debian.org/debian jessie-updates main" >> /etc/apt/sources.list | echo "deb http://security.debian.org/ jessie/updates main" >> /etc/apt/sources.list | echo "deb-src http://security.debian.org/ jessie/updates main" >> /etc/apt/sources.list
cd /var/tmp
/usr/bin/apt-get update
apt-get --assume-yes install expect
tar xvfz XXXXXXXXXXX.tar.gz
mv /var/tmp/XXXXXXXX.deb /var/tmp/pushvod-dependencies
echo "deb XXXXXXXXXX amd64/" > /etc/apt/sources.list
aptitude update
expect -c 'spawn aptitude install dpkg-dev;
expect "Accept this solution?" {send "n\r"};
expect "Accept this solution?" {send "Y\r"};
expect "Do you want to continue?" {send "Y\r"};
expect "To continue, enter \"Yes\"\; to abort, enter \"No\":" {send "Yes\r"};
expect "To continue, enter \"Yes\"\; to abort, enter \"No\":" {send "Yes\r"};
interact;'
cd pushvod-dependencies
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
echo "deb file:/var/tmp/pushvod-dependencies ./" >> /etc/apt/sources.list
aptitude update
expect -c 'spawn aptitude install pushvod;
expect "Accept this solution?" {send "n\r"};
expect "Accept this solution?" {send "Y\r"};
expect "Do you want to continue?" {send "Y\r"};
expect "To continue, enter \"Yes\"\; to abort, enter \"No\":" {send "Yes\r"};
expect "To continue, enter \"Yes\"\; to abort, enter \"No\":" {send "Yes\r"};
expect "Enter PushVOD database name*:" {send "pushvod\r"};
interact;'
嗨!我試過了。但這對我沒有用。安裝所有時間中斷問題與引號。 – Adept
可能有顏色或引號字符不正常'「'但是一些utf符號?你可以運行'expect -d << END'來檢查你有什麼輸入 – komar