linux shell程式設計

2021-09-27 00:01:37 字數 3468 閱讀 8912

賦值時的 『=』左右不能有空格。運算表示式『+』等左右必須有空格。中括號和裡面的東西之間必須有空格。

$*和$@在獲取命令列引數時有區別。在陣列時沒區別,$和$都是獲取

陣列的所有引數

單引號原樣輸出,不管變數,除非在給變數再加對單引號。雙引號會解析變數

expr表示式計算。

(1)注意用反引號包圍

val=`expr 2 + 2`  #val = 2

(2) 條件表示式用於if時,要放在方括號之間,且條件運算子左右必須有空格。

但用於while時,整個表示式用圓括號括起來

正確寫法

if [$a == $b]

then

.....

fi

錯誤寫法1

if [$a==$b]

then

.....

fi

錯誤寫法2

if $a == $b

then

.....

fi

用於while時

#!/bin/bash

int=1

while(( $int<=5 ))

do echo $int

let "int++"

done

(3)乘號*必須加轉義符號

val=expr 2 * 2``

(4)更多關係運算子

-eq -ne -gt -lt -ge -le

[$val1 -eq $val2]

(5)字串關係運算子=!=

-n   #a="123";if [ -n $a ]-z$

(6)檔案測試運算子test

echo

(1)echo -e 「it is a test /n」   #-e開啟轉義,會把\n識別為換行符

(2)顯示結果定向至檔案

echo "it is a test" > myfile

(3)read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變數

read name

echo "$name it is a test"

[root@www ~]# sh test.sh

ok       #標準輸入

ok it is a test   #輸出

printf

$ printf "a string, no processing:\n" "a\nb"

a string, no processing:

if else

if condition

then

comand1

comand2

....

comandn

fi

寫成一行。加分號。

if condition;then comand;fi

(2) if elif else

a=10

b=20

if [ $a == $b ]

then

echo "a 等於 b"

elif [ $a -gt $b ]

then

echo "a 大於 b"

elif [ $a -lt $b ]

then

echo "a 小於 b"

else

echo "沒有符合的條件"

fi

for迴圈

for var in item1 item2 ... itemn

do command1

command2

...commandn

done

寫成一行

for var in item1 item2 ... itemn; do command1; command2… done;

for迴圈的in後面可以跟命令,但要加反引號比如

for

filein`

ls`do var=

`ls -l $

|awk''`

#賦值時要執行指令的話也要加反引號if[

$ -le 5120 ]

then

tar czf $.tar.gz $

fidone

while

while condition

do command

done

case

case 值 in

模式1)

command1

command2

...commandn

;;模式2)

command1

command2

...commandn

;;esac

例子

echo '輸入 1 到 4 之間的數字:'

echo '你輸入的數字為:'

read anum

case $anum in

1) echo '你選擇了 1'

;;2) echo '你選擇了 2'

;;3) echo '你選擇了 3'

;;4) echo '你選擇了 4'

;;*) echo '你沒有輸入 1 到 4 之間的數字'

;;esac

break會跳出所有後面的迴圈。continue會繼續執行下一次迴圈

函式輸入輸出重定向

各種括號的作用

陣列

a=

(1 2 3 4)

pos=0

echo a[

$pos

]#輸出「a[0]」 不會輸出a[0]所存的數

echo

$#輸出「1」

練習

(1) 編寫乙個指令碼,列印任何數的乘法表

如輸入3則列印

(2)快排

linux shell 程式設計

bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...

linux shell 程式設計

1 程式設計入門 shell的簡介。從程式設計師的角度來看,shell本身是一種用c語言編寫的程式,從使用者的角度來看,shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,完成更加複雜的操作。在linux gui日益完善的今天,在系統管理...

Linux Shell 程式設計

檔案描述 shell 代號 dev stdin 標準輸入,一般指的是鍵盤輸入 dev stdout 標準輸出,一般指終端顯示器 dev stderr 標準錯誤,一般指終端顯示器 l輸出重定向 l輸入重定向 l追加重定向 l錯誤重定向 2 l輸出和錯誤同時重定向 應用例子 1.將 ls的結果輸出到檔案...