# 現在我們用字典結合陣列來實現乙個簡單的遠端管理機
遠端管理機的需求:現在需要在乙個管理機上實現下列兩點內容:
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...