0
私たちの製品をインストールするプロセスを自動化するためにExpectパッケージを使用して自動shスクリプトを作成しようとしています。インストールのプロセスが進行している間、私は計画しているように質問をします。しかし、スクリプトが質問を得るとき:Enter PushVOD database name (leave blank for default 'pushvod'):
それはインストールを閉じるたびにです。 私は引用符で問題と思う - '
質問:for default 'pushvod'
Bash and 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