linux shell 腳本詳解

. Linux  shell 腳本編寫基礎
◆1.1 語法基本介紹
1.1.1 開頭

程序必須以下面的行開始(必須方在文件的第一行):
#!/bin/sh
符號#!用來告訴系統它后面的參數是用來執行該文件的程序。在這個例子中我們使用/bin/sh來執行程序。
當編輯好腳本時,如果要執行該腳本,還必須使其可執行。
要使腳本可執行:
編譯 chmod +x filename 這樣才能用./filename 來運行
1.1.2 注釋
在進行shell編程時,以#開頭的句子表示注釋,直到這一行的結束。我們真誠地建議您在程序中使用注釋。
如果您使用了注釋,那么即使相當長的時間內沒有使用該腳本,您也能在很短的時間內明白該腳本的作用及工作原理。
1.1.3 變量

在其他編程語言中您必須使用變量。在shell編程中,所有的變量都由字符串組成,并且您不需要對變量進行聲明。要賦值給一個變量,您可以這樣寫:

復制代碼代碼如下:


#!/bin/sh 
#對變量賦值: 
a=”hello world” 
# 現在打印變量a的內容: 
echo “A is:” 
echo $a


有時候變量名很容易與其他文字混淆,比如:

復制代碼代碼如下:


num=2 
echo “this is the $numnd”

這并不會打印出“this is the 2nd”,而僅僅打印”this is the “,因為shell會去搜索變量numnd的值,但是這個變量時沒有值的??梢允褂没ɡㄌ杹砀嬖Vshell我們要打印的是num變量:

復制代碼代碼如下:


num=2 
echo “this is the ${num}nd”


這將打?。?/span> this is the 2nd
1.1.4 環境變量
export關鍵字處理過的變量叫做環境變量。我們不對環境變量進行討論,因為通常情況下僅僅在登錄腳本中使用環境變量。

這一講就介紹到這里,下面我們會接觸到具體的Linux shell腳本基礎的實質部分。

 

 

必須要要知道幾個變量,

復制代碼代碼如下:


   *    $0 :即命令本身,相當于c/c++中的argv[0]
    *    $1 :第一個參數.
    *    $2, $3, $4 … :第2、3、4個參數,依次類推。
    *    $#  參數的個數,不包括命令本身
    *    $@ :參數本身的列表,也不包括命令本身
    *    $* :和$@相同,但”$*” 和 “$@”(加引號)并不同,”$*”將所有的參數解釋成一個字符串,而”$@”是一個參數數組。


手工處理方式能滿足多數的簡單需求,配合shift使用也能構造出強大的功能,但處理復雜選項時建議用下面的兩種方法。
例子,(getargs.sh):

復制代碼代碼如下:


#!/bin/bash
if [ $# -lt 1 ]; then
    echo “error.. need args”
    exit 1
fi
echo “commond is $0”
echo “args are:”
for arg in “$@”
do
    echo $arg
done


運行命令:

復制代碼代碼如下:


./getargs.sh 11 22 cc
commond is ./getargs.sh
args are:
11
22
cc

 

 ”>, >>, 2>, 2>> :前面講過重定向符號> 以及>> 分別表示取代和追加的意思,然后還有兩個符號就是這里的2> 和 2>> 分別表示錯誤重定向和錯誤追加重定向,當我們運行一個命令報錯時,報錯信息會輸出到當前的屏幕,如果想重定向到一個文本里,則要用2>或者2>>。

 linux shell 腳本詳解

[ ] ”:中括號,中間為字符組合,代表中間字符中的任意一個

 linux shell 腳本詳解

&& 與 ||

在上面剛剛提到了分號,用于多條命令間的分隔符。另外還有兩個可以用于多條命令中間的特殊符號,那就是 “&&”和”||”。下面筆者把這幾種情況全列出:

1) command1 ; command2

2) command1 && command2

3) command1 || command2

使用”;”時,不管command1是否執行成功都會執行command2; 使用”&&”時,只有command1執行成功后,command2才會執行,否則command2不執行;使用”||”時,command1執行成功后command2 不執行,否則去執行command2,總之command1和command2總有一條命令會執行。

linux shell 腳本詳解 

 

 

 

 

原創文章,作者:linux-qiao,如若轉載,請注明出處:http://www.www58058.com/83818

(0)
linux-qiaolinux-qiao
上一篇 2017-08-05
下一篇 2017-08-05

相關推薦

  • shell腳本初步

    shell腳本編程初步 程序:由數據和指令組成, 指令:由程序文件提供 數據:可以通過IO設備、文件、管道來得到, 程序:算法+數據結構 變量:變量名+變量名指向的內存空間 變量賦值: name = value變量類型:存儲格式:字符 數值(精確數值 近似數值)   表示數據范圍  &nb…

    Linux干貨 2016-08-15
  • LVS的四種模型

    相關術語: vs:Virtual Server,Director,Dispatcher,Balancer rs:Real Server,upstream server,backend server lvs集群的類型: lvs-nat:修改請求報文的目標IP lvs-dr:操作封裝新的MAC地址; lvs-tun:在原請求IP報文之外新加一個IP首部; lvs…

    Linux干貨 2016-10-30
  • yum安裝 源碼安裝實例

     yum安裝 源碼安裝實例 §·源碼安裝 http 2.2.29實例 1     1.下載源碼包。 1     2.配置系統需要的編譯環境。 2     3 ./configure ; make  ;…

    Linux干貨 2016-08-24
  • 第七周 系統啟動維護管理

    1、簡述linux操作系統啟動流程 2、簡述grub啟動引導程序配置及命令行接口詳解 3、實現kickstart文件制作與光盤鏡像制作    

    2018-01-12
  • 用戶和組

    用戶和組 touch /etc/nologin     系統做維護時不想普通用戶登錄,就可以創建這個文件,也可以在里面寫一些提示。     維護完之后刪除這個文件就可以自動恢復      touch /run/nolog…

    Linux干貨 2016-08-03
  • poweroff

    poweroff命令詳解

    Linux干貨 2018-03-04
欧美性久久久久