【shell中元组、列表、字典、集合的用法以及区别】

 

 

 

 

 

[标签]: shell元祖    shell列表用法   

 

 

问题详情的描述或方案目标的预期:搞清楚shell中元组、列表、字典、集合的用法以及区别。

描述:有时候,我们会用临时文本来过度数据,但如果运用元组或列表,可以无需用到文本来中转数据。

 

 

 

【解决方案】

 

1 表示方式:元组(),列表[],字典{},集合[()];

2 顺序性:列表、元组、字典是有顺序,集合是没顺序;

3 可变性:元组不可变的;列表可变;集合介于两者之间主要功能包括关系测试和消除重复元素;

4 访问方式:列表通过索访问;字典通过键来查找对应的值;在集合中,只能通过提供的元素来进行比较,来确定某个元素是否存在于集合中。

归纳:元组()不可变;列表[]字典{}可修改

 

 

 

用法示例:

OBLECT_LIST=`ls /`

tmp_tuple=($OBLECT_LIST)

echo "${tmp_tuple[*]}"

 

................................................

my_tuple=()

pos=0

# for i in $OBLECT_LIST;do

for i in ${tmp_tuple[*]};do

my_tuple[$pos]="$i"

# echo $pos

let pos++

done

echo "${my_tuple[*]}"

................................................

 

 

USERNAME="11 22 33 44 55"

user=( "${USERNAME}" )

for i in ${user[*]}

do echo $i

done

 

USERNAME="11 22 33 44 55"

for i in $USERNAME

do echo $i

done

 

for i in 11 22 33 44 55;do

echo $i

done

 

m=0;new_yz=()

for i in 11 22 33 44 55;do

echo $i

new_yz[$m]="${i}_taich"

echo "${new_yz[*]}"

echo

let m++

done

 

 

MYLIST="

111111111111

222222222222

333333333333

"

for i in $MYLIST;do

echo $i

done

 

MYLIST="

111111111111

222222222222

333333333333"

for i in $MYLIST;do

echo $i

done

/*双引号可另起一行,也可和内容同一行 都行*/

/*但是如果不用变量作中介,而是把内容直接写在for i in后面,则必须写在同一行,不能换行写,加引号会当作一个整体*/

 

 

 

#========================================================[SQL连接异常检测]

check_connect_sql_err_pods()

{

bl=0

err_pods=()

DES_PODS=`/usr/local/bin/kubectl --context $ENV get po -A|egrep -v "NAMESPACE |^arms-prom |^kube-system |NAME |^default |^kube-node-lease |^kube-public "|egrep " ([0-9]+[smh])+$" |awk '{print$1"_"$2}'|xargs echo`

des_pods=($DES_PODS)

for connect_sql_err_pods in $DES_PODS ;do

{

ENS=`echo $connect_sql_err_pods|cut -d_ -f1`

EPO=`echo $connect_sql_err_pods|cut -d_ -f2`

if [ `/usr/local/bin/kubectl --context $ENV -n $ENS logs $EPO |egrep -i "create connection SQLException"|wc -l` -gt 0 ];then

err_pods[$bl]="$EPO"

let bl++

fi

}&

toploop

done

  

  

if [ $bl -gt 0 ];then

clear;echo

myec -t "======================================================"

myec -t "检测到${ENV_DES}有如下Pods连接MySQL异常:"

# echo "${des_pods[@]}" |sed 's/ /\n/g' |nl |column -t

echo "${err_pods[*]}" |sed 's/ /\n/g' |nl |column -t

myec -t "======================================================"

echo;echo

fi

}

  

  

  

说说:很多东西或人或事,其多与少,并非和好与坏相关,世间之事,大多自己才是最关键的因素之一。

 

 

 

百度一下    谷歌翻译

 

 

 

 

 

 

【书君方案】 简洁、完整、漂亮、记忆深刻

 

 

 

 

 

 

©2022 BLUBN.HonL   京ICP备15053931号   书君   bookfooked.com V1.1