shell高階篇之字典和陣列結合應用案例

2022-06-15 19:42:09 字數 1451 閱讀 6126

# 現在我們用字典結合陣列來實現乙個簡單的遠端管理機

遠端管理機的需求:現在需要在乙個管理機上實現下列兩點內容:

1.需要可以實時檢視現有專案執行狀態

2.遠端登陸任意一台機器

備註:現有的機器如下

# 備註:通過 shell的字典和陣列,寫乙個shell指令碼來實現乙個遠端管理機器

#!/bin/bash

#必須先宣告

declare -a dic

dic=(

[10.3.1.1]="

10.3.1.1,22,deploy1_dir,deploy1_name"[

10.3.1.2]="

10.3.1.2,26,deploy2_dir,deploy2_name")

# 獲取字典所有的key

dic_key=$(echo $)

# 將字典的key轉換為陣列

dic_array=(

$dic_key

)# 獲取陣列的總個數

array_num=$

# update_project函式用來列印所有可登入機器

update_project() - 1

`echo

"專案ip 序列號 專案

"for i in `seq0$`

dodic_key=`echo

$]}`

ip=` echo $|awk -f[,] ''`

port=` echo $|awk -f[,] ''`

dir=` echo $|awk -f[,] ''`

name=` echo $|awk -f[,] ''`

echo

"$ip $i $dir

"done

}# ssh_login函式用來控制ssh遠端登陸

ssh_login()↓↓↓↓↓↓↓↓↓↓ \033[0m

"update_project

read -p "

$read_msg:

"num

if [ "

$num

" = 0 ];then

echo -e ""

menu

elif [[ "

$num

" =~ ^[0-9]+$ ]] && [ "

$num

" -le $ ];then

ssh-p $port root@$]}

else

echo -e "

輸入0-$的數字\n"fi

done

}# 最後執行ssh_login函式來執行這個指令碼

ssh_login

shell 之 gawk (二) 高階篇

一 內建變數 1 欄位和記錄分隔符變數 fieldwidths 以空格分隔的數字列表,用空格定義每個資料字段的精確寬度 fs 輸入欄位的分隔符 預設空格 rs輸入記錄的分隔符 預設換行符 ofs輸出欄位的分隔符 ors輸出記錄的分隔符 2 資料變數 argc argind argv convfmt ...

shell指令碼高階之陣列基礎

陣列和變數的區別 變數在記憶體中占用的空間是離散的,陣列在內粗中開闢一段連續的大記憶體空間,隨後陣列中的每個元素都放入陣列記憶體中。陣列元素使用index標識。bash裡有兩種陣列普通陣列和關聯陣列。普通陣列只能使用整數類形數值作為陣列索引,關聯陣列可以使用字串作為索引。關聯陣列的另外三種稱呼 字典...

shell 之awk 關聯陣列高階應用

最近由於資料遷移過,有些使用者資訊需要再次確認下,也許資料量比較大,但是需要最終確認的比如說是使用者id和其對應的使用者積分數,這樣就會導致出現文字a 老的資料 文字b 新的資料 比如 1101 1231102 1111103 1451104 152 這是文字a.txt 文字b.txt如下 1101...