內部變數
$$與$bashpid都代表著執行程式的程序id,我們可以通過echo列印,並使用ps指令檢查得到相同的程序id-echo $$
-echo $bashpid
-ps ax | grep bash
=11015pts/2 r 0:00
/bin/bash
位置引數(一)強制退出程式本身示例(一)。我們經常向乙個程式傳遞以空格間隔的引數,我們按先後次序分成$0(指令碼本身),$1(引數1),$2(引數2)......
。$#表示引數數量的總數,也就是總共有多少引數
。$*所有的引數以一行顯示
。$@所有的引數以空格分隔
。e_badargs=65
。if [ ! -n "$1" ]
。then
-echo "usage: 'basename $0' arg1 arg2 ..." #提示指令碼使用方法
-exit $e_badargs #退出返回自定義錯誤**
fi
。$!代表程序本身強制退出程式本身示例(二)。vi & \ #此處執行了乙個vi編輯工具以便測試
。; #休眠一定時間
。eval 'kill -9 $!' &>/dev/null;} #殺死程序本身
。eval 可以對字串的**當成bash**並執行,等同於
。"和$()
timeout=30 #超時時間字元長度count=0 #初始值
vi &
。(())中變數無需在變數前使用$,而且沒有空格的侷限性
。這三種方法都可以取出字串的長度表示式方式取長度$expr length $string
expr "$string":'.*'
。stringz=abcabc123abcabc
。echo $ #得到15
。echo 'expr length $stringz' #得到15
。echo 'expr "$stringz" : '.*'『 #得到15
。依據正規表示式取得相匹配部分的長度,注意表示式要用單引號子字串的提取(符號)。expr match 」$string" '$substring』
。expr 「$string" : '$substring'
stringz=abcabc123abcabc
# |---------|
# 12345678
echo 'expr match "$stringz" 'abc[a-z]*.2'' # 得到8
echo 'expr "$stringz" : 'abc[a-z]*.2'' # 得到8
。根據字元的位置提取字串中一段,注意此方法索引由0開始子字串的提取(函式)。$。$
stringz=abcabc123abcabc
#0123456789......
echo $ #沒有給定長度,又從0(第乙個字元)開始,江區所有的字元得到abcabc123abcabc
echo $ #從1(第二個字元)開始得到bcabc123abcabc
echo $ #從7(第八個字元)開始得到23abcabc
echo $ #從第八個字元開始,取三個字元得到23a
。也可以使用substr函式提取,注意這個函式索引從1開始。expr substr $string $position $length
stringz=abcabc123abcabc
# 123456789......
echo 'expr substr $stringz 1 2' #得到ab
echo 'expr substr $stringz 4 3' #得到abc
Bash 內建引數
ppid 該bash的呼叫者process id.pwd 目前的工作目錄。oldpwd 上乙個工作目錄。reply 當read命令 沒有引數 時,直接設在reply上。uid user id。euid effective user id。bash bash的完整路徑。bash version bas...
Bash內建命令 shopt
1.shopt 命令簡介 2.shopt 引數含義說明 3.shopt 使用示例 1 extglob 引數 shopt 命令用於顯示和設定shell中的行為選項,通過這些選項以增強shell易用性。shopt命令若不帶任何引數選項,則可以顯示所有可以設定的shell操作選項。shopt psu op...
Bash內建命令 read
read ers a aname d delim i text n nchars n nchars p prompt t timeout u fd name 從標準輸入中讀取一行,或從 u選項指定的檔案描述符fd讀取一行,拆成單詞後,依次賦值給name echo 1 2 3 foo read a b...