又是老文章的搬移。
最近在工作之餘常用的是bash shell,其它shell以前也寫過,還是覺得bash好用,下文只說明bash shell的常用命令,內容參考以前一位大神的文章,自己做了增刪改,寫在這裡備用。在這裡推薦使用的程式設計工具是:
#!/bin/bash
#!/usr/bin/expect //這裡是用expect寫指令碼時的開頭,這裡備用
key
value
$#儲存程式命令列引數的數目
$?儲存前乙個命令的返回碼
$0儲存當前執行指令碼的程式名
$* 和 $@
都是以("$1 $2…")的形式儲存所有輸入的命令列引數
$$指令碼執行程序號
abc=9 或 abc=「name」
注意:
$abc
$1
...$2
...$3
...$4
...
key
value
$str1 = $str2
當str1與str2相同時,返回true
$str1 != $str2
當str1與str2不同時,返回true
$str
當str不是空字元時,返回true
-n $str
當str的長度大於0時,返回true
-z str
當str的長度是0時,返回true
keyvalue
int1 -eq int2
等於;當int1等於int2時,返回true
int1 -ge int2
大於等於;當int1大於/等於int2時,返回true
int1 -le int2
小於等於;當int1小於/等於int2時,返回true
int1 -gt int2
大於;當int1大於int2時,返回true
int1 -lt int2
小於;當int1小於int2時,返回true
int1 -ne int2
不等於;當int1不等於int2時,返回true
keyvalue
-d file
當file是乙個目錄時,返回 true
-f file
當file是乙個普通檔案時,返回 true
-r file
當file是乙個可讀檔案時,返回 true
-s file
當file檔案長度大於0時,返回 true
-w file
當file是乙個可寫檔案時,返回 true
-x file
當file是乙個可執行檔案時,返回 true
keyvalue
! expr
當expr的值是false時,返回true
expr1 -a expr2
當expr1,expr2值同為true時,返回true
expr1 -o expr2
當expr1,expr2的值至少有乙個為true時,返回true
現在新的bash中,也可以用c裡的判斷符號了,如下:
keyvalue
exp1 || exp2
當exp1和exp2的值至少乙個為true時,返回true
exp1 && exp2
當exp1和exp2的值同為true時,返回true
int1 <= int2
當int1小於/等於int2時,返回true
int1 >= int2
當int1大於/等於int2時,返回true
int1 < int2
當int1小於int2時,返回true
int1 > int2
當int1大於int2時,返回true
str1 == str2
當str1與str2相同時,返回true
str1 != str2
當str1與str2不同時,返回true
-e file
當file存在時,返回true
-o file
當file檔案的所有者是當前使用者時,返回true
語句語法格式
if 語句
if [[ condition ]]; then
#statements
else
#statements
fi或者
if [[ condition ]]; then
#statements
elif [[ condition ]]; then
#statements
else
#statements
ficase語句
case word in
pattern )
;;esac
語句語法格式
for語句
第一種:類似c語言
for (( i = 0; i < 10; i++ )); do
#statements
done
第二種:用於讀取字串很有用
for i in words; do
#statements
done
while語句
while語句是shell提供的另一種迴圈語句.
while語句指定乙個表示式和一組命令.
這個語句使得shell重複執行一組命令,直到表示式的值為false為止.
while [[ condition ]]; do
#statements
done
until語句
until與while語句具有類似的語法格式和功能,
不同的是while中expression的值為true時, shell執行命令組;
而until中當expression的值為false時,shell才執行那組命令.
until [[ condition ]]; do
#statements
done
shift語句
shift將存放在位置變數中的命令列引數,依次向左傳遞.
例如,位置變數當前值為: $1=file1 $2=file2 $3=file3
執行一次shift命令後,位置變數的值為: $1=file2 $2=file3
還可以在shift命令中指定位置變數轉移的次數, 如: shift n
select語句
select 表示式是一種bash的擴充套件應用,動作包括:
(1)、自動用1,2,3,4列出選單 (沒有echo指令,自動顯示選單)
(2)、自動read輸入選擇 (沒有 read指令,自動輸入)
(3)、賦值給變數 (沒有賦值指令,自動輸入數字後,賦值字串給變數)
shell允許使用者定義自己的函式.函式是高階語言中的重要結構.shell中的函式於c或者其他語言中定義的函式一樣.與從頭開始,一行一行地寫程式相比,使用函式主要好處是有利於組織整個程式.在bash中,乙個函式的語法格式如下:
fname (
)
複製**定義好函式後,需要在程式中呼叫他們.bash中呼叫函式的格式:
fname [parm1 parm2 parm3...]
呼叫函式時,可以向函式傳遞任意多個引數.函式將這些引數看做是存放他的命令列引數的位置變數. Linux Bash Shell 學習筆記
1 bash指令碼的引數處理 bash的引數可以用 加數字編號來訪問,其中 代表指令碼的引數個數 1代表指令碼的第1個引數 2代表指令碼的第2個引數 以此類推,n代表指令碼的第n個引數,但是,不能用 10來訪問第十個引數。如果遇到引數超過10個的情況,必須處理或儲存第乙個引數 1,然後使用shift...
Linux bash shell 使用技巧
使用gnu linux系統使用bash是家常便飯,知道一些bash常用的快捷鍵就顯得非常有必要,bash快捷鍵大全 ctrl a 相當於home鍵,用於將游標定位到本行最前面,回到命令列開始,unix上只能用這個組合鍵 ctrl e 相當於end鍵,即將游標移動到本行末尾,轉到命令行尾,unix上同...
linux bash shell 基本語法
1.read 讀取來自鍵盤的輸入內容賦值給變數,使用方法如下 root dev opt android sdk sdk read var read this is what i get from my keyboard root dev opt android sdk sdk echo this i...