shell脚本,求大神详细解答一下这个脚本的功能(参数设置方式),谢谢! (Linux下测试VDBench用的) Linux shell脚本输出所有运行参数的和
linux\u4e0bshell\u811a\u672c\u7a0b\u5e8f\u6307\u5b9a\u6267\u884c\u6743\u7684\u547d\u4ee4\u662f\u4ec0\u4e48chmod o+x filename \u53ea\u6709root\u624d\u80fd\u6267\u884c\u8fd9\u4e2a\u547d\u4ee4
\u5f53\u7136\u4e5f\u53ef\u4ee5\u76f4\u63a5 sh filename.sh \u8fd9\u6837\u53ef\u4ee5\u76f4\u63a5\u6267\u884c
#!/bin/bash
if [ $# -le 1 ]
then echo "\u53c2\u6570\u7f3a\u5c11"
exit 1
fi
#---sum\u4ee3\u8868\u548c\u503c
sum=0
#---\u5faa\u73af\u4e3b\u4f53
for n in $@
do
sum=$(( $sum + $n ))
done
#---\u8f93\u51fa
echo $sum
这个脚本大致流程是这样的:
脚本需要传入一个磁盘名称的参数赋值给dev变量
通过函数config来生成配置文件wd.cfg, 这些配置文件的参数你可以去参考下vdbench命令
最终执行磁盘性能测试命令 ./vdbench -f wd.cfg 生成一个4K_write_ran_"当前时间" 的一个报告文件
绛旓細鑴氭湰闇瑕佷紶鍏ヤ竴涓鐩樺悕绉扮殑鍙傛暟璧嬪肩粰dev鍙橀噺 閫氳繃鍑芥暟config鏉ョ敓鎴愰厤缃枃浠秝d.cfg锛 杩欎簺閰嶇疆鏂囦欢鐨勫弬鏁颁綘鍙互鍘诲弬鑰冧笅vdbench鍛戒护 鏈缁堟墽琛岀鐩樻ц兘娴嬭瘯鍛戒护 ./vdbench -f wd.cfg 鐢熸垚涓涓4K_write_ran_"褰撳墠鏃堕棿" 鐨勪竴涓姤鍛婃枃浠
绛旓細1. 闇瑕佺敤 test 鍛戒护鎴 [ ] 鏉ユ祴璇曟枃浠舵槸鍚﹀彲璁块棶骞跺彲璇汇2. 鍒ゆ柇閫昏緫閿欒锛宨f 涓 else 閲岀殑鍐呭棰犲掋3. $#琛ㄧず鍙傛暟涓暟锛屽彇绗竴涓弬鏁板簲璇ョ敤$1銆4. $1鏈濂界敤""鍖呭惈璧锋潵锛屼互闃叉枃浠惰矾寰勬垨鏂囦欢鍚嶄腑鏈夌┖鏍笺備慨鏀瑰涓嬶細!/bin/sh if [ -r "$1" ]then cat "$1"else echo "File $1 ...
绛旓細16) 姣忎釜鑴氭湰寮濮嬬殑 #!/bin/sh 鎴 #!/bin/bash 琛ㄧず浠涔堟剰鎬 ?杩欎竴琛岃鏄庤浣跨敤鐨 shell銆#!/bin/bash 琛ㄧず鑴氭湰浣跨敤 /bin/bash銆傚浜 python 鑴氭湰锛灏辨槸 17) 濡備綍鑾峰彇鏂囨湰鏂囦欢鐨勭 10 琛 ?18) bash 鑴氭湰鏂囦欢鐨勭涓涓鍙锋槸浠涔 19) 鍛戒护锛歔 -z "" ] && echo 0 || echo 1 鐨勮緭鍑...
绛旓細{1} 鏄繖涓鑴氭湰浼犲叆鐨勭涓涓弬鏁帮紝姣斿浣犳墽琛 a.sh aaa.tar.gz 锛岄偅涔 ${1} 灏辨槸 aaa.tar.gz {1##*.tar.} 鐨勬剰鎬濇槸 鎶 $1 鐨勫煎幓鎺夊尮閰 *.tar. 鐨勫墠缂锛屽浜 aaa.tar.gz 鏉ヨ锛屽氨鏄幓鎺 aaa.tar.閭d箞鍓╀笅鐨勫氨鏄 gz 浜嗐傝繖涓敤娉曟槸 bash 鎻愪緵鐨勶紝鍙互 man bash 鏌ョ湅銆
绛旓細print a"&"$i}'done <file.txt 璇存槑锛歿line%&*} 寰楀埌鍓嶇紑锛屾瘮濡俛&b&c echo ${line##*&} 寰楀埌鍚庨潰鐨勬暟瀛椾覆锛屾瘮濡123,345,567 awk閫氳繃閫楀彿鍒嗛殧锛屼娇鐢ㄥ惊鐜嫾鎺ュ墠缂鍜屾瘡涓暟瀛楀苟杈撳嚭銆俛wk閫氳繃-v浼犻shell鍙橀噺鍒癮wk鍐呴儴锛岄氳繃-F璁剧疆瀛楁鍒嗛殧绗︺侼F涓篴wk鍐呴儴鍙橀噺锛岃〃绀哄垎闅旂鍒嗗壊鍑虹殑瀛楁鏁扮洰銆
绛旓細鑴氭湰锛歝at >> script.sh <<EOF !/bin/bash file=\$1 if [[ "\${file}" == "" ]] ; then echo -e "璇疯緭鍏${file},濡 script.sh a.txt"exit 1 fi if [ ! -f "\${file}" ] ; then echo -e "鏂囦欢\${file} 涓嶅瓨鍦"exit 2 fi sed -i 's/ABC123/EFG456/2' \$...
绛旓細shell鑴氭湰鏈川涓婂氨鏄竴浜涙枃鏈枃浠讹紝鎴戜滑鍙互灏嗕竴绯诲垪闇瑕佹墽琛岀殑鍛戒护鍐欏叆鍏朵腑锛岀劧鍚庨氳繃shell鏉ユ墽琛屻傚湪杩欓噷鎴戜滑浠嬬粛鐨勬槸Bash shell(Bourne Again Shell),瀹冩槸鐩墠澶у鏁癎UN/Linux绯荤粺榛樿鐨剆hell鐜銆備功涓墍鏈夌殑瀹為獙閮芥槸鍦║buntu14.04 LTS鐜涓嬪畬鎴愮殑銆備簩銆佸熀鏈搷浣 1.鎵撳紑缁堢 鍦╱buntu14.04 LTS绯荤粺涓...
绛旓細profile 鐨勶級銆備綘鍙栧緱鐨勫彉閲忓ぇ姒傛槸璁惧湪 $HOME/.profile 涔嬩腑鐨勫惂銆傚湪crontab閲屾墽琛岀殑鎸囦护涓嶄細鍏坰ource $HOME/.profile鐨勶紝鎵浠ヤ綘瑕佽嚜宸辨墽琛宻ource in 鐨勫姩浣溿備緥濡傦細鍋囪浣犵殑user id 鏄 xyz锛屼綘瑕佹墽琛 run_abc锛. ~xyz/.profile ; cd ~xyz ; run_abc 鏈変粈涔堥棶棰樺啀鏉ラ棶鎴戝ソ浜嗐傝阿璋紒
绛旓細!/bin/bashif [ $# -lt 1 ];then echo "usage $0 [path or file]" exit -1fiif [ "$1" = "/root" ];then ls -a $1 | tee 13out else echo "绗竴涓綅缃弬鏁颁笉鏄/root鐩綍锛" exit -2fiargc=0for i in $@do argc=$(($argc+1)) if [ $argc -...
绛旓細鍏充簬linux鐨shell鑴氭湰鐨勯棶棰,姹澶х墰甯姪! 10 鎵ц濡備笅鍛戒护鍒涘缓鏂囦欢:touchbar{1..278}.txt鏂囦欢鍚嶄负:bar1.txtbar2.txtbar3.txt...bar10.txt...bar100.txt...bar278.txt鍐檚hell鎴栬卲ython鑴氭湰閲嶅懡鍚嶈繖浜涙枃浠朵负:bar0001.txtbar0002.t... 鎵ц濡備笅鍛戒护鍒涘缓鏂囦欢: touch bar{1..278}.txt鏂囦欢鍚嶄负:bar1.txt...