Shell程式設計

2021-07-22 04:24:58 字數 3159 閱讀 9775

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

read
read

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 形式儲存所有輸入的命令列引數 以 ...