1. 程式人生 > >shell中while read line do done只讀取一行的問題

shell中while read line do done只讀取一行的問題

從自己以前部落格弄過來的。

今天寫一個指令碼遠端去定期清理日誌,遇到一個問題;如下,只能讀出第一行,程式就退出了。

原因是迴圈裡 ssh 進入了另一個程序,導致輸入中斷。

後來改為

for ds_ip in `cat ds_list.txt`

將每一行都預讀出來就OK了。

對shell還是不熟啊啊啊啊。。。。。


修改後:

相關推薦

shellwhile read line do done讀取一行的問題

從自己以前部落格弄過來的。 今天寫一個指令碼遠端去定期清理日誌,遇到一個問題;如下,只能讀出第一行,程式就退出了。 原因是迴圈裡 ssh 進入了另一個程序,導致輸入中斷。 後來改為 for ds_ip in `cat ds_list.txt` 將每一行都預

shell指令碼的讀檔案(while read line)與寫檔案(here document)

shell指令碼中如何讀取外部檔案並進行相關操作呢?正規化如下,是要背滴: while read line; do process $line done < file 如何在寫中將內容寫入新檔案呢,要用到here document,一種特殊的重定向技術,小范式如下,也

關於while read line 循環變量作用域的問題

作用 完成 nbsp 默認 使用 從數據 sql 語句 發生 文件 前一陣用shell寫了一個從數據庫中抽取數據生成.xml文件的腳本,要求是每個文件中只生成1000條數據。於是用到了while read line 作為循環。 在制作文件計數器的時候發現了一個問題,在執行的

Shellwhile迴圈的done 後接一個重定向

讀檔案的方法: 第一步: 將檔案的內容通過管道(|)或重定向(<)的方式傳給while 第二步: while中呼叫read將檔案內容一行一行的讀出來,並付值給read後跟隨的變數。變數中就儲存了當前行中的內容。 例如讀取檔案/sites/linuxp

[shell] while read line 與for迴圈的區別

while read line 是一次性將檔案資訊讀入並賦值給變數line ,while中使用重定向機制,檔案中的所有資訊都被讀入並重定向給了整個while 語句中的line 變數。 for是每次讀取檔案中一個以空格為分割符的字串。 如下示例指令碼: #/bin/

[shell]while read line 與 for迴圈的區別

while read line 是一次性將檔案資訊讀入並賦值給變數line ,while中使用重定向機制,檔案中的所有資訊都被讀入並重定向給了整個while 語句中的line 變數。 for是每次讀取檔案中一個以空格為分割符的字串。 如下示例指令碼: #/b

19.Shell編程進階,數組,字符串(for,select,while read line,dec

追加元素 code glob arguments rcfile 變量初始化 引用 變量賦值 option for循環 for 變量名 in 列表;do循環體done 執行機制:依次將列表中的元素賦值給“變量名” ; 每次賦值後即執行一次循環體; 直到列表中的元素耗盡,循環

while read line 的字符串截取

for 都在 inf 變量 sha 字符 如果 pre 來看 有的時候,循環文本如下 root@pts/1 # cat file |head -10 2961047 788934832 797699249 2018-01-30-10 2961054 801973977 79

嵌入式 Shellwhile迴圈語句

while迴圈 while迴圈能夠重複執行一系列的命令,直到某種條件發生,先決條件是while後面的條件返回值,如果while後的命令執行成功,或條件真,則執行do和done之間的語句,執行完成後,再次判斷while後的命令和條件;如果while後的命令執行失敗,或條件為假,迴圈結束,與for迴圈的區別是,

while read line無法讀取最後一行的問題

while read line讀取檔案時,如果檔案最後一行之後沒有換行符\n,則read讀取最後一行時遇到檔案結束符EOF,迴圈終止,雖然此時$line記憶體有最後一行,但程式已經沒有機會再處理此行,因此可以通過以下程式碼來解決此問題:while read line ||[[

JAVAwhile迴圈和do while迴圈

那麼在講解迴圈之前呢我們先來了解一下什麼是迴圈   生活中的例子 車子的輪胎他就是一直在迴圈 馬拉松跑到也是在迴圈 因為運動員不停的一圈一圈在跑這也是一個迴圈 那麼我們為什麼要學習迴圈呢? 下面看一個小問題  張浩Java考試成績未達到自己的目標。為了表明自己勤奮學習

android ScrollView巢狀GridView,ListView顯示一行的解決辦法

注:本文是由網上大神分享的解決方案彙集而成 方法一: 重寫ListView、GridView: 重寫ListView: public class MyListView extends ListView { public MyListView(Context contex

Swift的switch 和 do while

clas lin popu font 穿透 情況 滿足 track otto switch後面的()能夠省略 OC中的switch假設沒有break就會穿透(依次運行),在Swift中不會穿透(可理解默認就有break) OC中入股要在case

shell使用while循環ssh的註意事項

ssh while 需要讀取一個文本,次文本每一行包含一個IP在while循環中使用ssh,但ssh完第一行後就退出了,如何避免自動讀取一行就跳出while循環,此文將詳細解釋其原因。 最近在寫一個自動更新的shell,可是發現如果在使用while循環從一個文件中讀取ip地址,然後訪問就只能

C#程式設計基礎第七課:C#的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用

知識點:while迴圈、do-while迴圈、forxufo迴圈、ach迴圈的使用。 1、while迴圈 特點:先判斷條件,條件為真,執行迴圈語句。條件為假,直接結束迴圈語句。 語法: while(條件表示式) {        迴圈語句;

javafor迴圈,while迴圈與do...while的區別

for語法結構 for(表示式1;表示式2;表示式3){ 迴圈體 } 首先你需要知道for迴圈的執行順序:  表示式1 -》 表示式2 -》 迴圈體 -》表示式3 while語法結構 while(迴圈條件){ 迴圈體 } 如果迴圈條件為true,

shellwhile

shell中的while 基本語法 while [ 條件判斷式 ] do 程式 done 應用例項 案例 1 :從命令列輸入一個數 n,統計從 1+..+ n 的值是多少? #!/bin/bash #案例 1 :從命令列輸入一個數 n,統計從 1+..+ n 的

Shellread的選項及用法

Read的一些選項 Read可以帶有-a, -d, -e, -n, -p, -r, -t, 和 -s八個選項。 -a :將內容讀入到數值中 echo -n “Input muliple values into an array:” read -a arra

shell與運算 cut切分行 if while綜合在一起的一個例子

  前言: 公司要統計 treasury庫hive表磁碟空間,寫了個指令碼,如下:   查詢hive倉庫表佔用hdfs檔案大小: hadoop fs -du -h  /user/hive/warehouse/treasury.db  > treasury

shell 的for迴圈while迴圈和case語句

迴圈語句1)for 迴圈 第一種語法格式:for((初始化變數值;結束迴圈條件;迴圈控制語句))do迴圈體done eg. #!/bin/sh sum=0 for ((i=0;i<10;i++)