Linux Shell程式設計

2021-10-07 06:53:29 字數 1920 閱讀 6961

mkdir sh

cd sh

#! /bin/bash

cd /tmp

echo "hello world"

賦予程式檔案可執行許可權,直接執行./shellfile:./first.sh

呼叫命令直譯器(shell)解釋執行:bash first.sh

使用source命令執行:source first.sh

shell函式:用shell語言編寫的一系列程式**,可以像其他命令一樣被引用

外部命令:會建立乙個新程序來執行如:locate,grep,ifconfig,ls,find,

變數屬性宣告:declare或者typeset

陣列變數:和普通變數一樣,不需要先定義或者先賦值再使用,沒有賦值的情況下,陣列元素的值就是空串

變數引用操作符:$除了簡單的引用變數之外,還有字串替換,模式匹配替換模式匹配:filepath=/home/alice/major.minor.ext

$:如果pattern匹配varname的頭部,則刪除最長匹配部分,返回剩餘部分,varname本身不變

$:如果pattern匹配varname的尾部,則刪除最短匹配部分,返回剩餘部分,varname本身不變

$:如果pattern匹配varname的尾部,則刪除最長匹配部分,返回剩餘部分,varname本身不變

$或$:如果pattern匹配varname的某個子串,則將varname的最長匹配部分替換成string,並返回替換後的串,varname本身不變。如果模式以'#'開頭,則表示匹配varname的首部,如果模式以'%'開頭,則表示匹配varname的尾部。如果string為空串,匹配部分將被刪除。如果varname為@或者*,操作將被依次用於每個位置引數,並且擴充套件為結果列表。第一種格式僅替換第一次匹配的子串,第二種格式會替換所有匹配的子串

位置引數和特殊變數不加雙引號的$@和$*的作用是一樣的,加上雙引號的"$@","$*"在特殊場合作用會有所不同,"$@"是引用所有引數,可以進行迭代,"$*"表示引用所有引數連線在一起,中間用空格分開,是乙個字串。"$"表示引用陣列整體的各個元素位置變數不能由使用者直接設定,但是可以用set命令間接的設定除$0之外的位置變數的值

#! /bin/bash

# setposvar.sh

set learn linux program

echo $0 $1 $2 $3

shell內建了shift,用於左移位置引數,也就是原來的$2的值賦給$1(原$1的值永遠丟失),$3的值賦給$2。。。

#! /bin/bash

# shiftposvar.sh

set learn linux program

echo "parameter number: $#,they are:"

echo $1 $2 $3

shift

echo "after shifted, parameter number: $#, they are:"

echo $1 $2 $3

# execute

bash shiftposvar.sh one two three

# result

parameter number: 3,they are:

one two three

after shifted, parameter number: 2, they are:

two three

read命令:用於從鍵盤上讀取資料並且賦值給指定的變數,read命令可編寫互動式指令碼程式,格式:read 變數1 [2]

export語句:

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的結果輸出到檔案...