定义数组
array=(1 2 3)
echo ${array[*]} [0]也可以
或者
array[0]=1 分别定义
array=([1]=one [2]=two [3]=three)
可以从0开始 也可以从1开始 从1开始就没有0的值
或者动态数组
array($(echo {a..z}))
touch /array/{1..3}
array=($(ls /array))
数组的打印和输出
echo ${array[0]} 打印第一个
echo ${array[*]} 打印所有
echo ${array[@]} 打印所有
echo ${#array[@]} 统计个数 最大限度保持原意“”下
echo ${#array[*]} 统计个数 所有元素变为字符串“”下
echo ${array[@]:1:2} 打印1-2
${!array[*]}打印数组下标
替换 echo ${array[@]/1/b} 第一个替换-->b
删除
unset array
unset array[0]
利用for循环打印字母个数不大于6的单词
#!/bin/bash
for i in I am westos teacher welcome to westos training class
do
[ ${#i} -lt 6 ]&&echo -n "$i "
done
echo
或者
#!/bin/bash
array=(I am westos teacher welcome to westos training class)
for i in ${array[@]}
do
[ ${#i} -lt 6 ]&&echo -n "$i "
# [ $i -eq `${array[@]}` ]
done
echo
自动换行
或者
for ((i=0;i<${#array[*]};i++))
do
[ ${#arr[i]} -lt 6 ]&&echo -n "${array[i]} "
done
echo
#########随机数
for循环在/westos目录下批量创建10个html文件
每个文件需要包含是个随机小写字母+固定字符串westos
echo $RANDOM 0-32767
openssl rand -base64 40 随机64编码情况下的40位字符串
#!/bin/bash
Path=/westos #不能全大写和系统冲突
[ -d "$Path" ]|| mkdir -p $Path
for i in `seq 10`
do
random=$(opensll rand -base64 40|sed 's/[^a-z]//g'|cut -c 1-10)
touch $Path/westos/${random}_westos.html
echo ${random}_westos.html success
done
seq -w 100 会自动001 010补齐
#!/bin/bash
for i in `seq -w 10`
do
random=$(echo "westos$RANDOM" | md5sum |cut -c 1-10)
useradd westos$i &>/dev/null
[ `echo $?` -eq 0 ]&&
echo $random |passwd --stdin westos$i&&echo westos$i added passwd is $random&&echo westos$i added passwd is $random >> /etc/westospass||echo westos$i exists.
done
#!/bin/bash
for i in `seq -w 10`
do
random=$(echo "westos$RANDOM" | md5sum |cut -c 1-10)
useradd westos$i &>/dev/null
if [ `echo $?` -eq 0 ];then
echo $random |passwd --stdin westos$i
echo westos$i added passwd is $random
echo westos$i added passwd is $random >> /etc/westospass
else
echo "westos$i exists."
fi
done
md5加密
md5sum XXX > file
md5sum -c file 检测校验码
例如
echo "westos$RANDOM" | md5sum |cut -c 1-10