本是最近在學習elastic search,但是每次啟動乙個集群環境的時候,需要執行繁瑣的命令,於是補了下shell指令碼,編寫個簡單的shell指令碼用於一鍵啟動我的集群環境,方便自己的學習。以下是在學習過程中的一些個人筆記。
個人編寫的指令碼案例可以參見博文-----《編寫elastic search+kibana單機集群環境啟停指令碼》
在一般情況下,人們並不區分 bourne shell 和 bourne again shell,指令碼開頭必須是#! /bin/sh或者**#! /bin/bash**
直接變數名等於即可。如num=10
,這就定義乙個變數明為num,並賦值為10
用於接收使用者輸入的變數read num
,這就定義了乙個num變數用於接收使用者輸入的值
類似於常用的tomcat啟動指令./catalina start
,這裡的catalina實際就是乙個sh指令碼,start就是預設引數,在指令碼檔案中直接用$0
、$1
、$2
來使用,這裡$0
表示的是catalina指令碼本身的名字,$1
、$2
則是跟在執行指令碼後的引數
num=10
readonly num
變數的使用,只需要在變數的前面加上關鍵字**$**。變數名外面的花括號是可選的,加不加都行,加花括號是為了幫助直譯器識別變數的邊界。比方說在拼接字串的時候,如下:
read num
echo
"input num is $."
if-else# if-lese
if[ -e $datapath
]then
echo
"$存在"
else
echo
"$不存在"
fi
if-else-if# if-lese
if[ -e $datapath
]then
echo
"$存在"
elif
[ -w $datapath
]echo
"$可以寫"
fi
whilenum=10
while
(($num >1))
doecho
$num
let"num--"
done
for迴圈for loop in 1 2 3 4 5
doecho
"the value is: $loop"
done
運算子
說明備註+加法
-減法*懲罰
/除法%取餘
=賦值==相等
!=不相等
運算子說明
備註-eq
==-ne
!=-gt
>
-lt<
-ge>=
-le<=
運算子說明備註!
非-oor-a
and&&
and||
or運算子
說明示例(ps:注意中括號表示式內的空格)
-z判斷字串長度是否為0,為0返回true
[ -z $a ]
-n檢測字串長度是否為0,為0返回 false。
[ -n $a ]
$檢測字串是否為空,不為空返回 true。
[ $a ]
運算子說明
示例(ps:注意中括號表示式內的空格)
-b檢測檔案是否是塊裝置檔案,如果是,則返回 true。
[ -b $file ] 返回true
-c檢測檔案是否是字元裝置檔案,如果是,則返回 true。
略,用法同上
-d檢測檔案是否是目錄,如果是,則返回 true。
略,用法同上
-f檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。
略,用法同上
-g檢測檔案是否設定了 sgid 位,如果是,則返回 true。
略,用法同上
-k檢測檔案是否設定了粘著位(sticky bit),如果是,則返回 true。
略,用法同上
-p檢測檔案是否是有名管道,如果是,則返回 true。
略,用法同上
-u檢測檔案是否設定了 suid 位,如果是,則返回 true。
略,用法同上
-r檢測檔案是否可讀,如果是,則返回 true。
略,用法同上
-w檢測檔案是否可寫,如果是,則返回 true。
略,用法同上
-x檢測檔案是否可執行,如果是,則返回 true。
略,用法同上
-s檢測檔案是否為空(檔案大小是否大於0),不為空返回 true。
略,用法同上
-e檢測檔案(包括目錄)是否存在,如果是,則返回 true。
略,用法同上
-s判斷某檔案是否 socket。
略,用法同上
-l檢測檔案是否存在並且是乙個符號鏈結。
略,用法同上
shell指令碼學習筆記
學習筆記 1,檔案名字命名為 sh,字尾sh表明這是乙個bash指令碼檔案 2,shell指令碼的第一行如下 bin sh bin sh告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式 3,寫完指令碼後儲存檔案,然後將檔案變成可執行檔案 chmod x test.sh 4,以下是乙個...
Shell指令碼學習筆記
find 命令 1.基於檔名或者正規表示式搜尋 例子 匹配多個條件 find name txt o name pdf print 找到當前目錄中所有txt pdf檔案輸出 加 o 表示or條件 將中間部分視為乙個整體 find regex py sh regex 基於正規表示式匹配 2.基於目錄深度...
Shell指令碼 學習筆記
編寫輸出hello world的程式是入門的第一步 1.vim helloworld.sh 2.輸入 i 進入插入模式 開始寫指令碼 bin sh echo hello world 3.執行shell指令碼 chmod 0777 helloworld.sh 賦予執行許可權 helloworld.sh...