shell中數組的應用

定義數組

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章