shell 陣列 eval工具等小技巧

2021-06-08 02:23:11 字數 684 閱讀 5827

shell這種指令碼語言在某些環境中感覺跟高階語言相比,對一些高階資料結構支援很不夠,寫起來也極不方便,但是基本上你想要的,shell都能夠支援,只是不是那麼方便而已。

一、shell陣列

array=( value1 value2 value3 ... )

array="one two three" 

取值:$

刪除:unset array[1]; unset array

陣列長度:$

詳細參照:

二、乙個需求:   index=5 $結果為5,如果要想取到輸入引數的第五個值,應該是$5,那麼$}對嗎?這個是不對的。請問這個怎麼取

1、a=5

echo $a           #返回5

eval b="$"$a""

echo $b          #返回輸入引數第五個的值

2、$     #返回輸入引數第五個的值

三、判斷乙個變數是否在某乙個陣列,例如第五個引數是否在陣列中

1、echo "$" | grep -q "$"   #如果第五個引數是普通字元,那麼沒有問題,檢查$?

2、echo "$" | grep -q \\"$"  #如果第五個引數是「-r"類似的,以「-"加乙個字元,那麼就必須轉義, 然後檢查$?

3、echo "$" | awk 『』   #沒有寫出來,但是這個是一定ok的

shell指令碼 eval執行shell命令

和其他語言的eval功能差不多,都是將乙個儲存執行語句的變數作為引數,eval會讓變數所儲存的語句執行。下面是乙個執行表單提交的命令 注意,這裡只是示例,應用中不要這麼使用,很危險 bin bash index.cgi echo content type text html charset utf ...

Shell中, eval的用法

eval是shell內建的命令。基本用法如下 eval arguments 主要功能是讀入arguments並執行之。arguments的退出碼 exit code 會被當做eval的退出碼。如果沒有arguments,則退出碼是0。在平時的使用中,我們一般會用到eval的2個特性。cat pars...

shell 中的 eval 應用

一 bash命令處理的12個步驟 1 將命令列分成由固定元字符集分隔的記號 space,tab,newline,記號型別包括單詞,關鍵字,i o重定向符和分號。2 檢測每個命令的第乙個記號,檢視是否為不帶引號或反斜線的關鍵字。如果是乙個開放的關鍵字,如if和其他控制結構起始字串,function,變...