shell 使用雜記 一

2021-08-11 14:01:35 字數 1767 閱讀 9965

shell 使用雜記

shell 指令碼在工作中或多或少都會用到。有時候我們只是使用shell實現工作中的乙個功能,並不需要全部學會shell的知識。這篇部落格記錄了我常用的shell功能,記錄的目的是需要用的時候信手拈來。

數值型陣列定義

使用一對括號表示定義陣列,元素之間使用「空格」來隔開

numberarray=(1 2 3 4 5);

字串型別陣列

陣列中的元素使用雙引號或者單引號包含,元素之間使用「空格」來隔開。

stringarray=("aaa" "bb" "cc"); 或者   stringarray=('aa' 'bb' 'cc');

獲取陣列長度

arrlength=$或$均可,即形式:$ 可得到陣列的長度。

讀取某個下標的值

arr_index2=$,即形式:$

類似c/c++ 語音的for迴圈

for  ((  i=0; i<5 ; i++ ));  do

echo $i

done

for file in ./tmpcert/*

doif test -f $file

then

echo $file 是檔案

fiif test -d $file

then

echo $file 是目錄

fidone

ls -l | grep "^-" | wc –l

ls -lr| grep "^-" | wc –l

ls -lr| grep "^d" | wc -l

以變數var為例

var=1

var =$(($ var +1))

var =$[$ var +1]

var =`expr $ var + 1`

let var ++

let var +=1

((var ++))

line=`grep "begin certificate" -w chain.cer -n  |  awk -f':' ''`

linearray=($line)

begin=1 #起始

end=5 #結束

cmd="$begin,$p"  #命令

sed -n $cmd chain.cer > tmpcert/1.txt #擷取行並重定向

tmp測試檔案中的內容如下

subject=/c=cn/st=state/l=location/o=organization/ou=organizationunit/cn=commonname/emailaddress=email

把':'替換成=

sed -i "s/:/=/g" tmp

在文字中替換字元或字串(使用正規表示式)      

把'subject=/' 替換成空,其中'/'需要使用轉義字元'\'來轉義表示

sed -i "s/subject=\///g" tmp

shell雜記 shell特別點

1 shell變數 變數名和等號之間不能有空格 your name runoob.com 唯讀變數定義 readonly you name,在定義後無法被修改 刪除變數 unset your name 獲取字串長度 echo 提取子字串 echo 2 shell陣列 定義陣列用空格隔開或者換行。僅支...

Debian 使用雜記(一)

前幾天又衝動的把系統換成linux了,最開始接觸linux是2010年,那時候買了個本本,預裝的是ubuntu8.10,自此知道除了windows原來還有其它作業系統。不記得什麼時候開始知道ubuntu是基於debian 的了,據稱debian 上的所有預裝的軟體都是開源的,因此用的人還是很多的,其...

Shell 學習雜記二

測試 test expression expression 方括號與表示式之間有空格 判斷if expression then command else if expression then command fifi case var in var1 command1 結束邊界 var2 comma...