2017年最新企業面試題之shell(一)
2017年最新企業面試題之shell(一)
**********************************************
企業Shell面試題1:批量生成隨機字符文件名案例 *
**********************************************
使用for循環在/oldboy目錄下批量創建10個html文件,其中每個文件需要包含10個隨機小寫字母加固定字符串oldboy,名稱示例如下:
[[email protected] C19]# ls /oldboy
apquvdpqbk_oldboy.html mpyogpsmwj_oldboy.html txynzwofgg_oldboy.html
bmqiwhfpgv_oldboy.html mtrzobsprf_oldboy.html vjxmlflawa_oldboy.html
jhjdcjnjxc_oldboy.html qeztkkmewn_oldboy.html
jpvirsnjld_oldboy.html ruscyxwxai_oldboy.html
解答:
腳本內容如下:(for循環實現腳本)
#!/bin/bash
#date=2017-8-3
cd /oldboy
for (( i=0;i<10;i++ ))
do
r=` head -c 500 /dev/urandom|tr -dc [a-z]|head -c 10|sed -r ‘s#[^a-z]#m#g‘`
touch "$r"_oldboy.html
done
說明:
腳本執行結果如下:
[[email protected] oldboy]# ll
總用量 8
-rw-r--r-- 1 root root 0 8月 3 13:35 defozmpplm_oldboy.html
-rw-r--r-- 1 root root 175 8月 3 13:35 for.sh
-rw-r--r-- 1 root root 0 8月 3 13:35 fpwxukgqho_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 gwtwtmdwaf_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 htttummyjh_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 myqmgyixuj_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 rmsyxakjbx_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 sxarorojil_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 wfqaymdmxc_oldboy.html
-rw-r--r-- 1 root root 184 8月 3 13:32 while.sh
-rw-r--r-- 1 root root 0 8月 3 13:35 yvgviwswze_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:35 zhikoyxipv_oldboy.html
腳本內容如下:(while循環實現腳本)
#!/bin/bash
#date=2017-8-3
cd /oldboy
i=0
while (( i<10 ))
do
r=` head -c 500 /dev/urandom|tr -dc [a-z]|head -c 10|sed -r ‘s#[^a-z]#m#g‘`
touch "$r"_oldboy.html
((i++))
done
說明:
腳本執行結果如下:
[[email protected] oldboy]# ll
總用量 4
-rw-r--r-- 1 root root 0 8月 3 13:28 atncjmfwtd_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 bmbhdhvqmb_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 bmuqvcehgc_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 irfrxjjmny_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 mvprsmwvah_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 nxyfjkvekl_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 omqyxuykgq_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 smkxwfjepd_oldboy.html
-rw-r--r-- 1 root root 184 8月 3 13:28 while.sh
-rw-r--r-- 1 root root 0 8月 3 13:28 wkwmkktdcn_oldboy.html
-rw-r--r-- 1 root root 0 8月 3 13:28 xtznpcuxem_oldboy.html
************************************
企業Shell面試題2:批量改名特殊案例 *
************************************
將以上面試題1中結果文件名中的oldboy字符串全部改成oldgirl(最好用for循環實現),並且將擴展名html全部改成大寫。
解答:
for循環實現腳本如下:
#!/bin/bash
#date=2017-8-3
cd /oldboy
for i in `ls|grep .*html`
do
mv $i `echo $i|sed -r ‘s#(.*)_oldboy.html#\1_oldgirl.HTML#‘`
done
說明:
腳本執行結果如下:
[[email protected] oldboy]# sh for2.sh
ahqrvgmewi_oldgirl.HTML
cekphjpxmf_oldgirl.HTML
fodvkohejd_oldgirl.HTML
llymsvwhim_oldgirl.HTML
mejlzbfmna_oldgirl.HTML
mxqrnbgmnt_oldgirl.HTML
pkviyuhrum_oldgirl.HTML
shmmlxzkdu_oldgirl.HTML
wmgokfirna_oldgirl.HTML
wmmknomcmy_oldgirl.HTML
其他方法參考:http://wutengfei.blog.51cto.com/10942117/1951146
********************************************
企業Shell面試題3:批量創建特殊要求用戶案例 *
********************************************
批量創建10個系統帳號oldboy01-oldboy10並設置密碼(密碼為隨機數,要求字符和數字等混合)。
不用for循環的實現思路:http://user.qzone.qq.com/49000448/blog/1422183723
解答:
#!/bin/bash
#date=2018-8-3
for i in `seq -w 1 10`
do
useradd oldboy$i -M
echo "`openssl rand -base64 8`"|passwd --stdin oldboy$i
done
說明:
本文出自 “聖騎士控魔之手” 博客,請務必保留此出處http://wutengfei.blog.51cto.com/10942117/1953452
2017年最新企業面試題之shell(一)