shell程式設計入門詳解 從基礎到除錯

2021-09-25 02:23:13 字數 4234 閱讀 4660

使用變數內容:$name$,花括號為了識別邊界

例:

a=123

echo

$a# 顯示: 123

# 定義陣列,用括號來表示陣列,陣列元素用"空格"符號分割開,若元素含空格,加上引號即可

array_name=

(value0 value1 value2 value3)

#讀取陣列

$# 獲取陣列中的所有元素

$# 取得陣列元素的個數

length=

$# 或者

length=

$# 取得陣列單個元素的長度

lengthn=

$

$()意味著先執行括號內的命令,並將命令返回的結果作為字串替換$()

`` 裡面的命令會先執行,然後執行出來的結果作為字串給外部

例:

ls -l `

locate

crontab

`

會首先執行locate,然後ls顯示locate到的目錄.

例:

name=123

myname=

"$name its me"

#123 its me

myname=

'$name its me'

#$name its me

read n  #當鍵盤輸入 123 後, n的值為123

read -p "請輸入數字" n #會提示

let: 其內置於bash中,除常用運算外,還提供了冪運算**例:

let

"a = 1 + 1"

b=9c=5

let"a=$b+$c"

# 注意有變數存在要使用雙引號

let"((a=1+

1,d=2+

2,k=3+

3))"# 多個求值

利用source執行指令碼或. script.sh 是在本程序(bash)執行,會影響到本程序(主要是環境變數)

# 提取子字串

string=

"linux is great"

echo

$# 輸出 inux

echo

$# 從1這個位置開始擷取

# 獲取字串長度

string=

"abcd"

echo

$# 輸出4

# 字串拼接:

n="aa"

"bb"

# n=aabb

n="$(var)

kk"# 這是另一種做法

# 查詢子字串

string=

"life is good"

echo

`expr index "$string" is`

# 字串替換

$# 替換第乙個,當查詢**現了:」/」**轉義符」\/」表示。(注意第乙個一定要是乙個變數的名字,然後查詢和替換部分如果應用變數記得加上$)

$# 全部替換

# 字串刪除

$ # 從變數$string的開頭, 刪除最短匹配$substring的子串

$ # 從變數$string的開頭, 刪除最長匹配$substring的子串

$# 從變數$string的結尾, 刪除最短匹配$substring的子串

$# 從變數$string的結尾, 刪除最長匹配$substring的子串

if

[command];

then

statement

fi

if

[command];

then

statement;

elif

[command];

then

statement;

else

statement;

fi

不能在[ ]裡面使用&&以及||,會報錯

expression如下

(expression) # expression為真

! expression # expression為假

expression -a expression # 且 同時為真返回真

expression -o expression # 或 有乙個為真返回真

string = string # 字串相等 空格不得省略

string != string # 字串不相等

-z string # string為空

-n string # string不為空

integer1 eq integer2 # 兩數相等

integer1 ne integer2 # 不等於

integer1 gt integer2 # 大於

integer1 ge integer2 # 大於等於

integer1 lt integer2 # 小於

integer1 le integer2 # 小於等於

-b file :file是塊裝置

-c file :file是字元裝置

-d file :file是資料夾

-e file :file存在

-f file :file是檔案

-h file :file是硬鏈結

-l file :file是軟鏈結

-r file :file存在且具有可讀許可權

-s file :file是socket檔案

-w file :file存在且具有可寫許可權

-x file :file存在且具有可執行許可權

取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;;相當於其他語言中的 break。如果沒有匹配模式,使用星號 * 捕獲該值。

case 值 in

模式1)

command1

command2

command3

;;模式2)

command1

command2

command3

;;*)

command1

command2

command3

;;esac

# for迴圈實現列印1-10

for((i=

1;i<

10;i++

))do

echo$i;

done

# for迴圈實現列印列表

for i in

`cat mouse`

doecho$i;

done

# 或arr=

(aaa bbb ccc ddd)

for i in$do

echo$i;

done

# 或for i in a b c;

doecho$i;

done

;

i=1

while

[$i -lt 10 ]

# 如果 i 小於 10,就列印出來

doecho

$i i=$[

$i + 1 ]

# i加1

done

用法與其它語言類似,例:

for i in a b c;

doecho$i;

if[$i== b ]

;then

break;fi

;done

;# 結果: a b

function fun_name(

)fun_name(

)

fun_name 1 2 3  # 引數跟在函式名後面
bash -n script.sh
bash -x test.sh
set +x # 開啟

statements;

set -x # 關閉

shell指令碼除錯技術 - ibm developerworks

Python程式設計從入門到實踐 基礎入門

python程式設計從入門到實踐 基礎入門 1 python中的變數 2 python首字母大寫使用title 方法,全部大寫upper 方法,全部小寫lower 方法 3 python中字串拼接使用 號 4 python中刪除字串的空格 刪除末尾空格的rstrip 刪除開頭空格的lstrip 刪除...

通用技術 Shell 程式設計從入門到精通

shell指令碼 英語 shell script 是一種電腦程式與文字檔案,內容由一連串的shell命令組成,經由unix shell直譯其內容後運作。被當成是一種指令碼語言來設計,其運作方式與直譯語言相當,由unix shell扮演命令列直譯器的角色,在讀取shell script之後,依序執行其...

程式設計從入門到拋棄

第一節程式設計課你按照老師所說的,一行行列印出 hello world 時,你的眼亮起來了,覺得程式設計 so easy 你不禁感慨道,你好哇,程式設計師。你好哇,世界,我來了。你學習基本語法,方法,框架,資料庫,資料結構,開始做第乙個完整的專案 使用者登入管理系統。你滿有成就感的向老師介紹,你是如...