使用shell读取文件,安装软件


我使用Ubuntu,想安装boost-1.55,但是默认到版本不是,所以我搜索了以下,得到一个下面的列表(部分内容):


 sh


 libboost-atomic1.55-dev
libboost-atomic1.55.0
libboost-chrono1.55-dev
...

我想写一个shell直接读取文件安装,shell是这么写的:


 sh


 #!/bin/bash

while read line
do
    name=$line
    apt-get install "$name"
done < $1

为什么 sudo 执行之后,会出现直接终止,而不让我继续操作这样的情况呢?如下:

$ sudo ./install-boost.sh boostname
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会安装下列额外的软件包:
libboost-atomic1.55.0 libboost1.55-dev
建议安装的软件包:
libboost1.55-doc libboost-chrono1.55-dev libboost-context1.55-dev
libboost-coroutine1.55-dev libboost-date-time1.55-dev ...
下列【新】软件包将被安装:
libboost-atomic1.55-dev libboost-atomic1.55.0 libboost1.55-dev
升级了 0 个软件包,...
解压缩后会消耗掉 96.8 MB 的额外空间。
您希望继续执行吗? [Y/n] 中止执行。
$
为什么这里就直接退出了呢?如果我想继续操作,shell文件该怎么写?

shell Ubuntu

灵鸟路.空 9 years, 11 months ago

 #!/bin/bash

while read line
do
    name=$line
    apt-get install "$name" < /dev/tty
done < $1

夜战笨蛋川内酱 answered 9 years, 11 months ago

你可以指定安装时遇到提示时设置为Yes。这样就会安装了。


 bash


 apt-get -y install "$name"

Karser answered 9 years, 11 months ago

apt-get install -y "$name"

干果儿Ai队长 answered 9 years, 11 months ago

Your Answer