幾個有意思的運維編程題

使用for循環在/oldboy目錄下通過隨機小寫10個字母加固定字符串oldboy批量創建10個html文件,名稱例如爲:

 
coaolvajcq_oldboy.html  qnvuxvicni_oldboy.html  vioesjmcbu_oldboy.html
gmkhrancxh_oldboy.html  tmdjormaxr_oldboy.html  wzewnojiwe_oldboy.html
jdxexendbe_oldboy.html  ugaywanjlm_oldboy.html  xzzruhdzda_oldboy.html
qcawgsrtkp_oldboy.html  vfrphtqjpc_oldboy.html

#!/bin/bash
letter=(`echo {a..z}`)

function create_filename()
{
filename=`for i in $(seq 10)
do
echo -n ${letter[$(($RANDOM%24))]}
done`_oldboy.html
}

for i in $(seq 10)
do
create_filename
touch $filename
done

用兩種將以上文件名中的oldboy全部改成oldgirl(用for循環實現),並且html改成大寫

#!/bin/bash
filelist=`ls | grep ".html$"`
for i in $filelist
do
mv $i ${i%%_*}_oldgirl.HTML
done


#!/bin/bash
filelist=`ls | grep ".html$"`
for i in $filelist
do
newfile=`echo $i | awk -F'_' '{print $1"_oldgirl.HTML"}'`
mv $i $newfile
done


批量創建10個系統帳號oldboy01-oldboy10並設置密碼(密碼爲隨機8位字符串)。

#!/bin/bash
for i in `seq 10`
do
if [[ $i -lt 10 ]];then
useradd oldboy0$i && echo `cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | strings -n 8 | head -n 1` | passwd oldboy0$i --stdin
else useradd oldboy$i && echo `cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g' | strings -n 8 | head -n 1` | passwd oldboy$i --stdin
fi
done


寫一個腳本,實現判斷10.0.0.0/24網絡裏,當前在線用戶的IP有哪些(方法有很多)

單進程

#!/bin/bash

for i in `seq 2 255`
do
ping 10.0.0.$i -c 1 1>/dev/null && echo 10.0.0.$i: live || echo 10.0.0.$i: dead
done

多進程

#!/bin/bash
tmp_fifofile="/tmp/$$.fifo"
mkfifo $tmp_fifofile
exec 6<>$tmp_fifofile
rm -rf $tmp_fifofile

thread=254
for ((i=0;i<$thread;i++))
do
echo ""
done >&6

for ((i=1;i<254;i++))
do
read -u6
        {
        ping 10.0.0.$i -c 1 1>/dev/null && echo 10.0.0.$i: live || echo 10.0.0.$i: dead
        echo "">&6
        } &
done
wait
exec 6>&-

exit 0

bash for循環打印下面這句話中字母數不大於6的單詞(崑崙萬維面試題)。
I am oldboy teacher welcome to oldboy training class.

#!/bin/bash
content="I am oldboy teacher welcome to oldboy training class."
new_content=`echo $content | sed 's/\.//'`
echo $new_content
arg=(`echo $new_content`)
for i in ${arg[@]}
do
if [[ ${#i} -le 6 ]];then
echo $i
fi
done

已知下面的字符串是通過RANDOM隨機數變量md5sum|cut-c 1-8截取後的結果,請破解這些字符串對應的md5sum前的RANDOM對應數字?

21029299

00205d1c

a3da1677

1f6d12dd

890684b

 


#!/bin/bash
declare -a array

for i in $(seq 0 32767)
do
array[$i]=`echo $i | md5sum | cut -c 1-8`
done

keys=([0]=21029299 [1]=00205d1c [2]=a3da1677 [3]=1f6d12dd [4]=890684b)
echo "number ------- md5sum"
for key in ${keys[@]}
do
for i in `seq 0 32767`
do
if [[ "${array[i]}" == "$key" ]];then
echo $i ------- $key
fi
done
done





發佈了65 篇原創文章 · 獲贊 66 · 訪問量 92萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章