1. 程式人生 > >企業面試必會shell

企業面試必會shell

數字 oldboy base delet ech bsp 企業 too and

企業面試題1:

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

[[email protected] oldboy]# sh /server/scripts/oldboy.sh
[[email protected] oldboy]# ls 
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


首先要解決隨機數的問題

1. 使用SHA算法來加密日期,並輸出結果的前10個字符:

[[email protected] shell]# date +%s |sha256sum |base64 |head -c 10 ;echo
YTc4Mjk0Yj

2. 使用內嵌的/dev/urandom,並過濾掉那些日常不怎麽使用的字符。這裏也只輸出結果的前32個字符:

1 #tr參數
 2 -c或——complerment:取代所有不屬於第一字符集的字符;
 3 -d或——delete:刪除所有屬於第一字符集的字符;
4 1.生成10個小寫字母
5 [[email protected] shell]# < /dev/urandom tr -dc a-z|head -c ${1:-10};echo 6 iprnfrqlhr 7 2.生成10個大寫字母 8 [[email protected] shell]# < /dev/urandom tr -dc A-Z|head -c ${1:-10};echo 9 PSKSFZYQPH 10 3.生成10個數字 11 [[email protected] shell]# < /dev/urandom tr -dc 0-9|head -c ${1:-10};echo 12 7341384592 13 4.生成10個數字和大寫字母的組合字符串
14 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z|head -c ${1:-10};echo 15 M6HP4LHTNJ 16 5.生成10個隨機字符(包含數字,大寫字母,小寫字母) 17 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z|head -c ${1:-10};echo 18 79JUYcjrjx 19 6.生成10個隨機字符(包含數字,大寫字母,小寫字母) 20 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-|head -c ${1:-10};echo 21 JdOi4TMmZD 22 7.生成10個隨機字符(包含數字,大寫字母,小寫字母,特殊字符) 23 [[email protected] shell]# < /dev/urandom tr -dc 0-9-A-Z-a-z-/|head -c ${1:-10};echo 24 s5-yTgMa8G

3. 使用openssl的隨機函數

[[email protected] shell]# openssl rand -base64 10
6kf9CHiiRgiSVQ==
[[email protected] shell]# openssl rand -base64 10|tr A-Z a-z
1ivhbhsrvjsfsa==
[[email protected] shell]# openssl rand -base64 32|tr A-Z a-z|cut -c 1-10
hbxd/42tag




企業面試必會shell