国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

linux shell在while中用read從鍵盤輸入的實現(xiàn)

2019-10-26 18:49:52
字體:
供稿:網(wǎng)友

系統(tǒng)是ubuntu 14.04 64bit,之前曾想安裝Stream來玩dota2,但最終沒成功。由于Stream只有32bit,安裝Stream時也安裝了大量32bit的庫。刪除Stream后,這些庫也一直沒管,今天忽然心血來潮,想清理一下系統(tǒng),把不必要的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" > $tmpwhile read linedo  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  fidone < $tmprm -rf $tmpexit 0

這個腳本大體上沒有什么錯,不過在執(zhí)行sudo apt-get purge $name這一行時,系統(tǒng)詢問是否刪除。但是這時卻沒有機(jī)會輸入,而是直接中止執(zhí)行。

xzc@xzc-HP-ProBook-4446s:~$ ./rm_i386_package.sh 正在讀取軟件包列表... 完成正在分析軟件包的依賴關(guān)系樹    正在讀取狀態(tài)信息... 完成    下列軟件包將被【卸載】: libdrm-radeon1:i386*升級了 0 個軟件包,新安裝了 0 個軟件包,要卸載 1 個軟件包,有 306 個軟件包未被升級。解壓縮后會消耗掉 0 B 的額外空間。您希望繼續(xù)執(zhí)行嗎? [Y/n] 中止執(zhí)行。

批量刪除軟件這操作,當(dāng)然要一個確認(rèn),不能加個參數(shù)默認(rèn)執(zhí)行啊。

查了一下資料,大概是說

while read linedo# xxxdone < $file

這樣會把read指令重定向為文件$file,這時在while中調(diào)用read會直接在文件中取一行作為輸入。所以在while中要把read重新定向為終端。上面的腳本稍微修改一行:

sudo apt-get purge $name < /dev/tty

這樣就OK了。

以上就是小編為大家?guī)淼膌inux shell在while中用read從鍵盤輸入的實現(xiàn)全部內(nèi)容了,希望大家多多支持武林站長站~

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 徐水县| 大安市| 城口县| 临猗县| 灵寿县| 乌兰县| 平遥县| 商河县| 静海县| 屯门区| 吴旗县| 乌鲁木齐市| 峡江县| 加查县| 乌兰县| 兴业县| 灌云县| 年辖:市辖区| 修文县| 水富县| 舞阳县| 博湖县| 新竹市| 鄂托克前旗| 论坛| 金华市| 商水县| 永平县| 鲜城| 铁力市| 红桥区| 宜兰县| 郴州市| 东至县| 忻州市| 泰宁县| 阿坝县| 阿克陶县| 拉萨市| 武义县| 固安县|