看懂指令碼檔案即可
知識點:
shell概述
shell變數
shell中的特殊字元
引數置換變數
控制結構
何為shell
shell就是unix提供給使用者的使用介面,處於核心和應用程式之間,他是乙個解釋性語言,也是
一種程式語言,也有自己的控制結構。
bash 比較普遍,包含 csh,ksh特色。
solaris預設shell 是sh,不過我們切換到bash來寫指令碼。
shell放在檔案裡面就變成了shell script 叫做shell指令碼。
指定乙個shell去執行這個檔案也可以。
bash ls.sh
一般採用第三種方式,將檔案設為可執行。
shell變數
變數就是乙個容器,傳遞資料的方式。我們分臨時變數與全域性變數。
臨時變數:在shell程式中定義的變數,全域性變數就是環境變數,其值不隨shell指令碼的執行結束而消失。
在變數前面加上 字首 $ .
賦值技巧:不能帶空格,變數可以是數字也可以是目錄,檔案等。 或者說是字串。是大括號不是小括號。
echo命令
一般對於輸出格式的控制我們需要用到 \b \c \f 換頁 \n 換行 \r 回車 \t 製表符 \v 垂直製表符
環境變數
是shell本身定義的變數,又稱為系統變數。
export命令
export命令有轉出作用,相當於設定完全域性變數後,要讓其對其他程序有效。所有需要輸出。
環境變數path
決定了尋找shell命令和其他程式的途徑,一般把常用 命令放在最前面。這個是影響shell程式效率之一。
預定義的特殊變數:
$* 位置引數 $# 引數個數 $$ 當前程序的pid
$! 最後乙個程序的pid $? 最後一條命令的退出狀態 $@ 與第乙個有點像。
位置 引數:
當位置引數超過9,怎麼辦?需要移動位置引數。shift表示向左移動。
shift移動的位數和個數有關,一般是整數倍,假如剩下的個數不足移動的位數,則剩下的無法移動。
小指令碼:第一句是程式會按照 bash裡面的shell指令執行, -ne 表示不等於0;
$# 表示統計位置引數的個數,下面是6個位置引數,乙個命令。
輸入輸出命令
鍵盤等都是標準輸入,我們可以理解為輸入流。
對於下面的 %s,其實可以改為 $x
shell中的特殊字元
萬用字元:* 任意字元 ? 乙個字元 [ ] 匹配多個字元 \ 轉義字元
引號:雙引號 、 單引號、倒引號
記住:倒引號 優先執行,當然我們也可以用 -exec 或者 |xargs 實現。
重定向符> < >>
選擇語句
注意語法。下面的;; 不可以少。不然會出錯。
while語句
until 語句
for 語句
對於程式中的 while條件,必須要有兩個 小括號,不然會報錯。
在shell程式中,變數可以不用先定義後使用,可以直接使用。
當下面的程式中,user 登入,才會結束,不然一直處於迴圈狀態。
其引數可以是 值表、檔案正規表示式、位置引數
注意區別下面的作用。以及let 表示式的使用 。在shell程式中沒有;分號。
流程控制語句
函式
函式名 ()
Solaris shell下運算元據庫
原文發表於網易部落格 2010 08 31 20 17 39 在solaris shell下運算元據庫,這個過程不是很複雜.整個過程和寫乙個ftp登陸的shell一樣.以下是我參考了網上的資料後自己寫的shell 1.執行sql命令 usr bin sh if 2 then echo not eno...
指令碼裡學數學 函式
二 函式返回值 三 函式傳參 四 函式變數作用範圍 五 函式庫 六 遞迴 將命令序列按格式寫在一起 可方便重複使用命令序列 function 函式名函式名 return表示退出函式並返回乙個退出值,指令碼中可以用 變數顯示該值 使用原則 1 函式一結束就取返回值,因為 變數只返回執行的最後一條命令的...
groovy 速學 03 指令碼
目錄 摘要 執行指令碼,繫結域 從命令列中執行指定指令碼 groovy example.groovy在其它程式中執行指定指令碼 有一指令碼檔案 example.groovy def s new example s.run 也可以通過該指令碼物件直接執行指令碼內的函式 通過 new 建立的指令碼物件可...