linux shell在while中用read从键盘输入的实现
发布时间 - 2026-01-10 22:19:05 点击率:次系统是ubuntu 14.04 64bit,之前曾想安装Stream来玩dota2,但最终没成功。由于Stream只有32bit,安装Stream时也安装了大量32bit的库。删除Stream后,这些库也一直没管,今天忽然心血来潮,想清理一下系统,把不必要的32bit库都干掉。

dpkg -l | grep "i386"看一下,32bit库太多,一个个敲sudo apt-get purge xxx显然有点累,分析了一下输出,
格式大概如下:
rc libkrb5support0:i386 1.12+dfsg-2ubuntu4 i386 MIT Kerberos runtime libraries - Support library
第2列为包名,第4列是平台,于是决定写一个脚本来删除:
#!/bin/sh
#rc libkrb5support0:i386 1.12+dfsg-2ubuntu4 i386 MIT Kerberos runtime libraries - Support library
#
#
pks=`dpkg -l | grep "i386" | awk '{print $2,$4}'`
tmp="tmp.file"
echo "$pks" > $tmp
while read line
do
name=`echo $line | awk '{print $1}'`
platform=`echo $line | awk '{print $2}'`
# if [ == ] in bash,buf in dash,if [ = ]
if [ "$platform" = "i386" ];then
sudo apt-get purge $name
fi
done < $tmp
rm -rf $tmp
exit 0
这个脚本大体上没有什么错,不过在执行sudo apt-get purge $name这一行时,系统询问是否删除。但是这时却没有机会输入,而是直接中止执行。
xzc@xzc-HP-ProBook-4446s:~$ ./rm_i386_package.sh 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包将被【卸载】: libdrm-radeon1:i386* 升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 306 个软件包未被升级。 解压缩后会消耗掉 0 B 的额外空间。 您希望继续执行吗? [Y/n] 中止执行。
批量删除软件这操作,当然要一个确认,不能加个参数默认执行啊。
查了一下资料,大概是说
while read line do # xxx done < $file
这样会把read指令重定向为文件$file,这时在while中调用read会直接在文件中取一行作为输入。所以在while中要把read重新定向为终端。上面的脚本稍微修改一行:
sudo apt-get purge $name < /dev/tty
这样就OK了。
以上就是小编为大家带来的linux shell在while中用read从键盘输入的实现全部内容了,希望大家多多支持~
# linux
# while
# read
# bash shell获取当前脚本的绝对路径(pwd/readlink)
# SHELL脚本read命令的具体用法
# 一条命令让你明白shell中read命令的常用参数
# Shell脚本read用法实现
# 软件包
# 新安
# 这一
# 太多
# 有机会
# 没有什么
# 要把
# 将被
# 是说
# 会把
# 看一下
# 后会
# 解压缩
# 装了
# 心血来潮
# 却没
# 小编
# 来玩
# 未被
# 大家多多
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android中AutoCompleteTextView自动提示
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
javascript中对象的定义、使用以及对象和原型链操作小结
Windows Hello人脸识别突然无法使用
香港服务器租用费用高吗?如何避免常见误区?
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
如何撰写建站申请书?关键要点有哪些?
韩国服务器如何优化跨境访问实现高效连接?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何在腾讯云服务器快速搭建个人网站?
Laravel如何配置Horizon来管理队列?(安装和使用)
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Android实现代码画虚线边框背景效果
Internet Explorer官网直接进入 IE浏览器在线体验版网址
如何在Windows服务器上快速搭建网站?
如何在IIS管理器中快速创建并配置网站?
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
JavaScript如何实现类型判断_typeof和instanceof有什么区别
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何用搬瓦工VPS快速搭建个人网站?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
Laravel如何实现模型的全局作用域?(Global Scope示例)
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
香港服务器选型指南:免备案配置与高效建站方案解析
如何在阿里云虚拟服务器快速搭建网站?
开心动漫网站制作软件下载,十分开心动画为何停播?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何在IIS7上新建站点并设置安全权限?
大同网页,大同瑞慈医院官网?
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
js代码实现下拉菜单【推荐】
Laravel如何使用Gate和Policy进行授权?(权限控制)
html如何与html链接_实现多个HTML页面互相链接【互相】
北京的网站制作公司有哪些,哪个视频网站最好?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
如何利用DOS批处理实现定时关机操作详解
再谈Python中的字符串与字符编码(推荐)

