linux shell 程式設計

2021-06-22 03:08:32 字數 2117 閱讀 3684

#!/bin/bash

#comments

your commands go here

首行中的符號#!告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。

除第一行外,以#開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上",這個符號表明下一行與此行會合併為同一行。

有環境變數、內部變數、使用者變數。

shell script是一種弱型別語言,使用變數的時候無需首先宣告其型別。

variable_name = variable_value

取值的時候要在變數名前加$,$variable_name可以在引號中使用,這一點和其他高階語言是明顯不同的。

特殊變數

$$shell本身的pid(processid)

$!shell最後執行的後台process的pid

$?最後執行的命令的結束**(返回值)

$#新增到shell的引數個數

$0shell本身的檔名

$1~$n

新增到shell的各引數值。$1是第1引數、$2是第2引數…。

==是否相等

!=  是否不等

-n 長度是否大於0

-z 長度是否等於0

-d是否為目錄

-f 是否為檔案 -r

是否可讀

-w 是否可寫 -x

是否可執行

! 等價c

語言 !

-a 等價

c語言 &&

-o 等價

c語言 ||

for current_variable

dostatements

done

if [ expression ] ; then

statements

elif [ expression ] ; then

statements

else

statements

fi說明:elif或else語句不是必需的。

case str in

str1 | str2)

statements;;

str3|str4)

statements;;

*)statements;;

esac

說明:*對應c語言的 default; ";;"對應c語言的break。

退出shell程式並返回乙個值,方便被另乙個shell呼叫並給出反饋。

如  /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh

執行的時候開乙個sub-shell執行呼叫的指令碼,sub-shell執行完畢後返回parent-shell。 sub-shell從parent-shell繼承環境變數,但是sub-shell中的環境變數不會帶回parent-shell。 如

exec /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh

在當前shell下執行目標指令碼,執行結束後,當前指令碼中exec行之後的內容就不會再執行了。

如 source  

/root/soft/apache-tomcat-8.0.21/bin/shutdown.sh  或.  

/root/soft/apache-tomcat-8.0.21/bin/shutdown.sh

source命令也稱為「點命令」,也就是乙個點符號(.),是bash的內部命令。

讀取目標指令碼裡面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼裡面所有新建、改變變數的語句都會儲存在當前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的結果輸出到檔案...

Linux Shell程式設計

linux的shell程式設計 history 用來檢視命令歷史的 也可以用!表示 預設的命令歷史有1000條 history相關的小技巧,就和!有關係 上一條命令的最後一條引數 555 在命令歷史裡面,執行第555條命令 vi 命令歷史裡從上往下看,最近的用到了vi的命令 tab鍵可以補全檔案路徑...