1. 程式人生 > >linux基本操作---shell程式設計之 while迴圈

linux基本操作---shell程式設計之 while迴圈

java中我們經常用到while迴圈,那麼shell中也有while迴圈:

while簡單迴圈

直接看demo:

demo1: 求1-10的和

[[email protected]02 software]# cat while1to10.sh 
#!/bin/bash
i=1
while [ $i -le 10 ]
do
    sum=$((sum+i))
    i=$((i+1))
done
echo $sum


[[email protected]02 software]# sh while1to10.sh 
55

問題:
開始的時候 老是報錯,我們的寫法是

報錯:
[
[email protected]
02 software]# sh while1to10.sh while1to10.sh: line 3: while[1 -le 10]: command not found while1to10.sh: line 4: syntax error near unexpected token `do' while1to10.sh: line 4: `do' 指令碼: [[email protected]02 software]# cat while1to10.sh #!/bin/bash i=1 while[$i -le 10] do sum=$((sum+i)) i=$((i+1
)) done echo $sum 之後修改 while的引數之間需要用空格隔開,問題解決,這個語法真6,無語了,苦笑。

while讀取檔案內容:

讀取檔案,遍歷every line ,有next line ,就echo line

[root@dev-02 software]# cat readwhile.sh 
#!/bin/bash
while read -r line
do
    echo $line
done < /etc/passwd



[root@dev-02 software]# sh readwhile.sh 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin .. .

關於-r 我們看一下幫助文件,可以發現-r是不考慮轉義字元。

-r Backslash does not act as an escape character. The backslash is considered to be part of the line. In par-
ticular, a backslash-newline pair may not be used as a line continuation.

相關推薦

linux基本操作---shell程式設計 while迴圈

java中我們經常用到while迴圈,那麼shell中也有while迴圈: while簡單迴圈 直接看demo: demo1: 求1-10的和 [[email protected]02 software]# cat while1to10.sh

linux中的shell程式設計while迴圈和until迴圈

while迴圈語法: while [ 條件判斷式 ] do 程式語句 條件終止語句 done 例項:求1加到100的和 #!/bin/bash #!從1加到100 i=1 s=0 while [ $i -le 100 ] # 如果變數i

Linux 下的 shell 程式設計 until 迴圈

  until 迴圈和 while 迴圈正好是相反的意思, while 迴圈表示當條件表示式為真時繼續迴圈,條件表示式為假時跳出迴圈; until 迴圈表示,當條件表示式為假時,進行迴圈,當條件表示式為真時結束迴圈. 其實用until 能解決的問題,用while 和 for

Linux基本操作——Shell程式設計

一、基本介紹         Shell是使用者與核心進行互動操作的一種介面,目前最流行的Shell稱為bash Shell。Shell也是一門程式語言<解釋型的程式語言>,即shell指令碼。一個系統可以存在多個shell,可以通過cat /etc/shell

Linux Shell程式設計 for迴圈語句 if條件語句

    最近涉及Linux Shell程式設計,還不太熟悉,對於賦值語句,數值計算,迴圈語句,變數使用都不太熟悉。我不打算一個一個的說明知識點,我打算用最多3個例子說明所有的這些知識點。 Example 1 : <span style="font-size:14px;

linux中的shell程式設計變數

shell程式設計主要是為了簡化linux系統管理的。 shell中的變數是一種弱型別的變數,c,java等語言是一種強型別的語言。 linux中的所有的變數預設型別都是字元型別的 零、bash變數的分類 bash變數的型別 變數型別

ShellShell程式設計for迴圈命令

bash shell提供了for命令,用於建立通過一系列值重複的迴圈,for命令的格式為: for var in list do commands done 在引數list中提供了一系列用於迭代

Linux 下的 shell 程式設計 if-else選擇結構

 Linux 中 shell 中if else 的使用方式比較簡單,. 相關的關鍵字有: if, elif , else, fi, 等.   1. if 的判斷表示式是 []   2. if 的範圍

linux基本操作yum程序包管理器

yum在Centos系統中,程序包管理器的核心是rpm: 其後端所使用rpm命令行工具; 前段使用yum命令行工具或dnf命令行工具;程序包管理的前段工具: RHEL/Centos系列發行版linux中,yum和dnf; yum命令行工具: Yellow

linux基本操作rpm程序包管理器

rpm在linux中的應用程序結構形式分為三種: 1)源代碼形式 2)二進制形式 3)程序包形式其中源代碼是最權威的,二進制形式經過了一系列的編譯、匯編、連接等等其他操作得到可以執行的程序及其他相關的文件,而程序包形式則是二進制形式進一步進行操作,使之可以自動安裝程序包中的所有文件,當然在卸

shell程式設計迴圈結構

與C語言類似,shell指令碼語言同樣有迴圈語句:1.for語句 2.while語句。下面講解一下這兩個迴圈結構的表達並舉例說明。 1.for語句 ①基本語法: for var in 單次表 do 命令列 done 同樣也有一種和C語言相類似的形式 for ((i = 0;

Linux shell指令碼使用while迴圈執行ssh的注意事項

如果要使用ssh批量登入到其它系統上操作時,我們會採用迴圈的方式去處理,那麼這裡存在一個巨大坑,你必須要小心了。 一、場景還原: 我現在是想用一個指令碼獲取一定列表伺服器的執行時間,首先我建立一個名字為ip.txt的IP列表(一個IP一行),再建好金鑰實現不用密碼直接登入。然後寫指令碼如下: [co

linux shell程式設計利用環境變數IFS自定義分隔符

預設情況下,bash shell將空格符、製表符、換行符看作是欄位分隔符,如果遇到這些字元,bash shell就會認為字元後是一個新的欄位,這就帶來一種困擾:如果我們想處理包含空格、製表符、換行符的字元就會有麻煩了。bash提供了一種自定義分隔符的機制:環境變數IFS定義

linuxshell 程式設計擴充套件正則表示式

1. ‘+’ 限定字元 +限定符表示前面字元至少出現一次或者多次。與*不同在於0次或者多次 2. '?' 限定符 ?限定前面的字元最多出現一次。即出現0次或者1次 3. 數線 |和圓括號() 例如

Linux Shell筆記結構迴圈

一、條件語句 1.if—then #!/bin/bash if date              如果命令執行成功(退出碼為0),則then部分的命令被執行 then    echo "good" fi 2.if—then—else #!/bin/bash if hunter then    echo "g

資料結構學習路4 佇列的基本操作(順序儲存的迴圈佇列+連結串列實現)

佇列先進先出,這裡用了順序(陣列)和鏈式兩種方式實現,下次再用鏈式儲存實現以下堆疊試試 迴圈佇列: //順序儲存結構的迴圈佇列 #include<iostream> using namespace std; #define MAXSIZE 100 typedef

linuxshell 程式設計變數及數學運算

1.shell中的變數是不分資料型別的,統一按照字串來儲存 2. bash shell只能支援數學整數運算(zsh可以支援浮點) 3.以下都是在bash shell 下進行的數學運算 方法一使用方括號進行基本的整數運算: #!/bin/bash var1=1 var2=2

Linux-shell程式設計bash變數

Bash變數命名規則 必須以字母下劃線開頭,只能由字母下劃線數字組成。 長度不能超過255個字元 變數名在有效的範圍內必須唯一 在Bash中,變數的預設型別都是字串 一 使用者自定義變數 使用者自定

shell程式設計】for迴圈while迴圈、break跳出迴圈、continue結束本次迴圈和exit退出整個指令碼

一、for迴圈  語法:for 變數名 in 條件; do …; done  案例1:  #!/bin/bash sum=0 for i in `seq 1 100` do     sum=$[$sum+$i]     echo $i done echo $sum 案

Linux-Shell程式設計建立shell指令碼並執行

1、建立檔案 touch myFirst.sh 2、編輯檔案 vi myFirst.sh 點選鍵盤的字母 I 進行編輯,輸入一下內容 #!/bin/bash # M