yes コマンドを使用するとデッドロックが発生します。

yes コマンドを使用するとデッドロックが発生します。

次のファイルがありますsetup.sh

. install.sh && . tolinux.sh && . startn.sh && . startm.sh

これはinstall.sh

yes | sudo apt-get update
yes | sudo apt-get install default-jdk
yes | sudo apt-get install expect
sudo apt-get install lftp

cd /usr/local/src/
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar xf noip-duc-linux.tar.gz
cd noip-2.1.9-1/

/usr/bin/expect <<END_SCRIPT
spawn make install
expect "Please enter the login/email*" { send "Username\r" }
expect "Please enter the password for user*" { send "password\r" }
expect "Please enter an update interval*" { send "30\r" }
expect "Do you wish to run something at successful update*" {send "N\r" }
END_SCRIPT

これが端末でプロセス全体を実行する方法です。

. setup.sh

このyesコマンドは、最初の2行のどこかに問題を引き起こします。どちらのインストールも確認が必要であることを知っています。発生する出力は次のようになります。

y
y
y
y
y
y
y
y
y
y
y
y
y
y
y
ySelecting previously unselected package libdatrie1:amd64.
Preparing to unpack .../libdatrie1_0.2.8-1_amd64.deb ...
Unpacking libdatrie1:amd64(0.2.8-1) ...
[several similar lines]
Selecting previously unselected package libpango-1.0-0:amd64.
Preparing to unpack .../libpango-1.0-0_1.36.3-1ubuntu1_amd64.deb ...
Unpacking libpango-1.0-0:amd64 (1.36.3-1ubuntu1) ...
_

(最後の下線はカーソルが点滅し続ける部分です)

そのyesコマンドがインストールを妨げたようですが、理由と方法がわかりません...

どんなアイデアがありますか?

ベストアンサー1

~からman apt-get

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively. If an
       undesirable situation, such as changing a held package, trying to install a unauthenticated package or
       removing an essential package occurs then apt-get will abort. Configuration Item: APT::Get::Assume-Yes.

試してみましたか?

編集する

install.shに対する私の提案

 sudo apt-get -y update
 sudo apt-get -y install default-jdk
 sudo apt-get -y install expect
 sudo apt-get install lftp

 # rest unchanged

おすすめ記事