ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> * 在Shell中,用括号来表示数组,数组元素用“空格”符号分割开 * > 构建数组 ~~~ 数组名=(值1 值2 ... 值n) array_name=(value0 value1 value2 value3) ~~~ > * 获取数组中的值 ~~~ ${数组名[下标]} valuen=${array_name[n]} # @表示获取所有值 echo ${array_name[@]} ~~~ > * 这是一个动态修改多个远程主机用户密码的脚本 ~~~ #!/bin/bash #remote host hostlist=("192.168.56.130" "192.168.56.180") #root password` passwd="tuna" if [ `whoami` = "root" ];then echo "current user:root " else echo "permission denied" exit 1; fi if [ $# -ne 2 ];then echo "usage : user password " exit 1; fi /usr/bin/dpkg -l|grep sshpass >/dev/null &2>&1 if [ $? -ne 0 ];then echo "please install sshpass:sudo apt-get install -y sshpass" exit 1; fi for ip in ${hostlist[@]} do echo "--------------------------------------------------------------------------------------" echo "ip:$ip" sshpass -p $passwd ssh -o "StrictHostKeyChecking=no" -t root@$ip "echo '$1:$2' | chpasswd" > /dev/null if [ $? -eq 0 ];then echo "password 修改成功" else echo "password 修改失败 ip:$ip" fi done ~~~ > * 删除 ~~~ unset array[1] # 删除数组中第一个元素 unset array # 删除整个数组 ~~~ 子串替换 代码如下: ~~~ [root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four ) # 第一个匹配到的,会被删除 ~~~ 代码如下: ~~~ [root@localhost dev]# echo ${array[@]/o/m} mne twm three fmur ~~~ 所有匹配到的,都会被删除 代码如下: ~~~ [root@localhost dev]# echo ${array[@]//o/m} mne twm three fmur ~~~ 没有指定替换子串,则删除匹配到的子符 复制代码 代码如下: ~~~ [root@localhost dev]# echo ${array[@] //o/} ne tw three fur ~~~ 替换字符串前端子串 代码如下: ~~~ [root@localhost dev]# echo ${array[@] /#o/k} kne two three four ~~~ 替换字符串后端子串 代码如下: ~~~ [root@localhost dev]# echo ${array[@] /%o/k} one twk three four ~~~