linux shell 簡單用法

2021-07-09 14:56:43 字數 2718 閱讀 5704

2.1.1shell命令列書寫規則

1,在執行shell命令時多個命令可以在乙個命令列上執行,但此時要使用分號(;)分隔命令.

2,長shell命令列可以使用反斜線字元()在命令列上擴充

echo &pwd

mkdir test1 \

|| cd test1

echo &pwd

2.1.2shell程式中使用的引數

1,位置引數

由系統提供的引數稱為位置引數。位置引數的值可以用n得

到,n是

乙個數字

,如果為

1,即 1。類似c語言中的陣列,linux會把輸入的命令字串分段並給每段進行標號,標號從0開始。第0號為程式名字,從1開始就表示傳遞給程式的引數。如0表

示程式的

名字, 1表示傳遞給程式的第乙個引數,以此類推。

2,內部引數

上述過程中的0是

乙個內部

變數,它

是必須的

,而1則可有可無,最常用的內部變數有0、

#、?、

*,它們的含義如下。

$0: 含命令所在的路徑。

$#: 傳遞給程式的總的引數數目。

$?: shell程式在shell中退出的情況,正常退出返回0,反之為非0值。

$*: 傳遞給程式的所有引數組成的字串。

3,2.2.1if語句

2.2.3if語句的特殊用法

if 語句的判斷可以使用表示式,例如test函式

2.2.4if 語句未歸類用法

1,判斷表示式

判斷表示式可以用上述的test函式代替,這裡不討論test函式;表示式的內容比較多.只能先描述現用的,具體的以後再補充.

if [ "$1" = "-t" ]

then

if [ -n "$2" ]; then

timer=$2

fifi

上述例子中國,第乙個表示式表示如果第乙個引數是」-t」就執行then後語句;第二個表示式表示如果存在第二個引數,就執行then後語句把第二個引數的值給timer(這是個簡單的例子,沒有做保護).

現在討論下第乙個表示式,為什麼要用」「;如果用[ $1 = -t ],當有第乙個引數的時候,該shell指令碼正常執行,當沒有第乙個引數的時候,該shell指令碼會報錯,原因(推測)shell指令碼是解釋型語言,當執行到

[ $1 = -t ]
發現$1 沒有,就把上面那句解釋為=-t,因此報錯.

2.3.1while迴圈

下例簡單了做了乙個迴圈,功能是說沒10秒列印一次date

timer=10;

while true;do

echo &date "+%b

%d%a"

sleep

$timer

done

3.1.1編輯shell程式

編輯乙個內容如下的源程式,儲存檔名為date

#!/bin/sh

timer=10;

while

true;do

echo &date "+%b%d%a"

sleep $timer

done

注意:#! /bin/sh通知採用bash解釋。如果在echo語句中執行shell命令date,則需要在date命令前加符號「&」,其中%b%d%a為輸入格式控制符。

3.1.2建立可執行程式

編輯完該檔案之後不能立即執行該檔案,需給檔案設定可執行程式許可權。使用如下命令:

u@ubuntue

$chmod +x date

注意:上述命令的意思是賦予date檔案可執行的許可權

3.1.3執行shell程式

執行shell程式有下面三種方法:

方法一:

u@ubuntue

$./date

方法二:另一種執行date的方法就是把它作為乙個引數傳遞給shell命令:

u@ubuntue

$bash

date

方法三:為了在任何目錄都可以編譯和執行shell所編寫的程式,即把/home/study的這個目錄新增到整個環境變數中。

u@ubuntue

$xport

path=/home/study

:$path

u@ubuntue

$bash date

3.2.1每個命令之間用;隔開

說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行,

但不保證每個命令都執行成功。

3.2.2.每個命令之間用&&隔開

說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是成功的。

3.2.3.每個命令之間用||隔開

說明:||是或的意思,只有前面的命令執行失敗後才去執行下一條命令,直到執行成功

一條命令為止。

echo &pwd

mkdir test1 && cd test1

mkdir test1 || cd test1

echo &pwd

Linux shell 簡單用法

為了完整起見,我這裡再用一些例子加以說明 的一些特異功能 假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my....

Linux shell 簡單用法

轉 為了完整起見,我這裡再用一些例子加以說明 的一些特異功能 假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 m...

Linux shell 簡單用法

為了完整起見,我這裡再用一些例子加以說明 的一些特異功能 假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my....