chmod a+x ***.sh
在.sh指令碼指令碼中新增如下注釋
#!/usr/bash
#定義字串(注意等號之間不可以有空格)
var="this is a string!"
#定義數字
var=100
#定義唯讀變數
readonly var
#無括號
echo
$var
#有括號
echo $
#刪除變數
unset
var
a='a'
#單引號定義字串
str='this is a $'
##結果為this is a $,單引號內的任何字串都會原樣輸出
#雙引號定義字串
str="this is a $"
##結果為this is a a,雙引號裡邊可以出現轉義字元,並可以有變數
#拼接字串
str1="hello"
str2="world"
str="$
$"#獲取字串長度
echo
$#提取子字串
echo
$
array=(123
45)arraystr=("a"
"b""c"
"d")
#可以單獨定義陣列的值
array[0]=value0
...array[n]=valuen
#使用陣列元素的一般格式是:
$#獲取陣列所有元素
$#獲取陣列長度
length=$
shell本身不支援算術運算子,需要使用expr
進行算術運算
或者使用let
注意邏輯運算子的格式如下 :
[ a op b ]
#注意中間的空格
#如果為真返回0,如果為假返回1
關係運算子
運算子說明
-eq==
-ne!=
-gt>
-lt<
-ge
=
-le<=
邏輯運算子
字串運算子
運算子說明
=判斷是否相等
!=是否不等
-z是否長度為0
-n是否有內容
str等同於-n
檔案測試運算子
操作符說明
舉例-b file
檢測檔案是否是塊裝置檔案,如果是,則返回 true。
[ -b $file ] 返回 false。
-c file
檢測檔案是否是字元裝置檔案,如果是,則返回 true。
[ -c $file ] 返回 false。
-d file
檢測檔案是否是目錄,如果是,則返回 true。
[ -d $file ] 返回 false。
-f file
檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回 true。
[ -f $file ] 返回 true。
-g file
檢測檔案是否設定了 sgid 位,如果是,則返回 true。
[ -g $file ] 返回 false。
-k file
檢測檔案是否設定了粘著位(sticky bit),如果是,則返回 true。
[ -k $file ] 返回 false。
-p file
檢測檔案是否是具名管道,如果是,則返回 true。
[ -p $file ] 返回 false。
-u file
檢測檔案是否設定了 suid 位,如果是,則返回 true。
[ -u $file ] 返回 false。
-r file
檢測檔案是否可讀,如果是,則返回 true。
[ -r $file ] 返回 true。
-w file
檢測檔案是否可寫,如果是,則返回 true。
[ -w $file ] 返回 true。
-x file
檢測檔案是否可執行,如果是,則返回 true。
[ -x $file ] 返回 true。
-s file
檢測檔案是否為空(檔案大小是否大於0),不為空返回 true。
[ -s $file ] 返回 true。
-e file
檢測檔案(包括目錄)是否存在,如果是,則返回 true。
[ -e $file ] 返回 true。
echo
echo something
printf#same as `printf` in c
printf
"%d"
100
readread
var
if [ condition ]
then
command
elif
then
command
else
command
fi
case var in
value-1)
command;;
value-1)
command;;
*) command;;
esac
for var in item1 item2
docommand
done
while condition(true/:)
docommand
done
[function] fun [()
]
#包含檔案
. filename
Shell程式設計 shell特性
linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...
Shell程式設計 Shell函式
shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...
Shell程式設計
1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...