使用變數內容:$name
或$
,花括號為了識別邊界
例:
a=123
echo
$a# 顯示: 123
# 定義陣列,用括號來表示陣列,陣列元素用"空格"符號分割開,若元素含空格,加上引號即可
array_name=
(value0 value1 value2 value3)
#讀取陣列
$# 獲取陣列中的所有元素
$# 取得陣列元素的個數
length=
$# 或者
length=
$# 取得陣列單個元素的長度
lengthn=
$
$()
意味著先執行括號內的命令,並將命令返回的結果作為字串替換$()
`` 裡面的命令會先執行,然後執行出來的結果作為字串給外部
例:
ls -l `
locate
crontab
`
會首先執行locate,然後ls顯示locate到的目錄.
例:
name=123
myname=
"$name its me"
#123 its me
myname=
'$name its me'
#$name its me
read n #當鍵盤輸入 123 後, n的值為123
read -p "請輸入數字" n #會提示
let: 其內置於bash中,除常用運算外,還提供了冪運算**
例:
let
"a = 1 + 1"
b=9c=5
let"a=$b+$c"
# 注意有變數存在要使用雙引號
let"((a=1+
1,d=2+
2,k=3+
3))"# 多個求值
利用source執行指令碼或. script.sh 是在本程序(bash)執行,會影響到本程序(主要是環境變數)
# 提取子字串
string=
"linux is great"
echo
$# 輸出 inux
echo
$# 從1這個位置開始擷取
# 獲取字串長度
string=
"abcd"
echo
$# 輸出4
# 字串拼接:
n="aa"
"bb"
# n=aabb
n="$(var)
kk"# 這是另一種做法
# 查詢子字串
string=
"life is good"
echo
`expr index "$string" is`
# 字串替換
$# 替換第乙個,當查詢**現了:」/」**轉義符」\/」表示。(注意第乙個一定要是乙個變數的名字,然後查詢和替換部分如果應用變數記得加上$)
$# 全部替換
# 字串刪除
$ # 從變數$string的開頭, 刪除最短匹配$substring的子串
$ # 從變數$string的開頭, 刪除最長匹配$substring的子串
$# 從變數$string的結尾, 刪除最短匹配$substring的子串
$# 從變數$string的結尾, 刪除最長匹配$substring的子串
if
[command];
then
statement
fi
if
[command];
then
statement;
elif
[command];
then
statement;
else
statement;
fi
不能在[ ]裡面使用&&以及||,會報錯
expression如下
(expression) # expression為真
! expression # expression為假
expression -a expression # 且 同時為真返回真
expression -o expression # 或 有乙個為真返回真
string = string # 字串相等 空格不得省略
string != string # 字串不相等
-z string # string為空
-n string # string不為空
integer1 eq integer2 # 兩數相等
integer1 ne integer2 # 不等於
integer1 gt integer2 # 大於
integer1 ge integer2 # 大於等於
integer1 lt integer2 # 小於
integer1 le integer2 # 小於等於
-b file :file是塊裝置
-c file :file是字元裝置
-d file :file是資料夾
-e file :file存在
-f file :file是檔案
-h file :file是硬鏈結
-l file :file是軟鏈結
-r file :file存在且具有可讀許可權
-s file :file是socket檔案
-w file :file存在且具有可寫許可權
-x file :file存在且具有可執行許可權
取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;;相當於其他語言中的 break。如果沒有匹配模式,使用星號 * 捕獲該值。
case 值 in
模式1)
command1
command2
command3
;;模式2)
command1
command2
command3
;;*)
command1
command2
command3
;;esac
# for迴圈實現列印1-10
for((i=
1;i<
10;i++
))do
echo$i;
done
# for迴圈實現列印列表
for i in
`cat mouse`
doecho$i;
done
# 或arr=
(aaa bbb ccc ddd)
for i in$do
echo$i;
done
# 或for i in a b c;
doecho$i;
done
;
i=1
while
[$i -lt 10 ]
# 如果 i 小於 10,就列印出來
doecho
$i i=$[
$i + 1 ]
# i加1
done
用法與其它語言類似,例:
for i in a b c;
doecho$i;
if[$i== b ]
;then
break;fi
;done
;# 結果: a b
function fun_name(
)fun_name(
)
fun_name 1 2 3 # 引數跟在函式名後面
bash -n script.sh
bash -x test.sh
set +x # 開啟
statements;
set -x # 關閉
shell指令碼除錯技術 - ibm developerworks Python程式設計從入門到實踐 基礎入門
python程式設計從入門到實踐 基礎入門 1 python中的變數 2 python首字母大寫使用title 方法,全部大寫upper 方法,全部小寫lower 方法 3 python中字串拼接使用 號 4 python中刪除字串的空格 刪除末尾空格的rstrip 刪除開頭空格的lstrip 刪除...
通用技術 Shell 程式設計從入門到精通
shell指令碼 英語 shell script 是一種電腦程式與文字檔案,內容由一連串的shell命令組成,經由unix shell直譯其內容後運作。被當成是一種指令碼語言來設計,其運作方式與直譯語言相當,由unix shell扮演命令列直譯器的角色,在讀取shell script之後,依序執行其...
程式設計從入門到拋棄
第一節程式設計課你按照老師所說的,一行行列印出 hello world 時,你的眼亮起來了,覺得程式設計 so easy 你不禁感慨道,你好哇,程式設計師。你好哇,世界,我來了。你學習基本語法,方法,框架,資料庫,資料結構,開始做第乙個完整的專案 使用者登入管理系統。你滿有成就感的向老師介紹,你是如...