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

 严气 发布于 2022-10-25 02:33

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

shlibboost-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文件该怎么写?

3 个回答
  • #!/bin/bash
    
    while read line
    do
        name=$line
        apt-get install "$name" < /dev/tty
    done < $1
    
    2022-10-26 14:07 回答
  • 你可以指定安装时遇到提示时设置为Yes。这样就会安装了。

    bashapt-get -y install "$name"
    
    2022-10-26 14:07 回答
  • apt-get install -y "$name"

    2022-10-26 14:08 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有