Solaris shell指令碼學習

2022-04-08 21:19:02 字數 2878 閱讀 2311

看懂指令碼檔案即可

知識點:

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 建立的指令碼物件可...