作死作死,完美主義,又「重寫」了

  • 2019 年 10 月 27 日
  • 筆記

最開始根據需求寫了執行腳本Dojob。

後來發現執行腳本變動比較頻繁,需要反覆執行dos轉換為unix,於是做了一個DojobH,即支持腳本——包裝了3條固定操作

1、轉換Dojob從dos到unix,就是移除回車符,生成一個臨時文件DojobUnix

2、執行DojobUnix

3、移除DojobUnix

這樣,可以隨意更改Dojob的主體,然後直接運行DojobH就可以了。H是hero的簡寫哦。

但是發現有了更多的需求,需要寫第二個Dojob2、第三個執行腳本Dojob3,每個執行腳本都要一個H腳本Dojob2H,Dojob3H嗎?

不行。那樣的話,不是又重複寫代碼了?文件也多了起來。

於是又寫了一個腳本,把文件名作為變量,使用了讀取屏幕輸入read方法,使其可通用

1、從屏幕輸入獲取dos文件名

2、執行轉換Dojob從dos到unix,就是移除回車符,生成一個臨時文件DojobUnix

 1 #!bin/bash   2 echo 開始:把f/test/的.sh文件從dos轉換為unix風格   3 ls #列出文件列表   4 echo 輸入:f/test/下的.sh文件名,如npcinmapcheck #給予輸入提示   5 read filename #從屏幕輸入讀取dos文件名   6 filenameunix=Unix${filename} #定義unix文件名   7 #rm -i $filenameunix.sh   8 cat $filename.sh | tr -d 'r' > $filenameunix.sh #執行轉換,移除回車符   9 chmod +x  $filenameunix.sh #使之可運行  10  11 #部分腳本有特例處理  12 echo 結束:${filename}.sh已經被轉換為${filenameunix}.sh #給予處理結束提示  13 case ${filename} in  14 "DropRate" ) echo ${filenameunix}.sh需進入release/bin/目錄下使用 && cp ${filenameunix}.sh ../expansion_2011winter_quest/bin/${filenameunix}.sh;;  15 "droprate" ) echo ${filenameunix}.sh需進入release/bin/目錄下使用 && cp ${filenameunix}.sh ../expansion_2011winter_quest/bin/${filenameunix}.sh;;  16 *) echo Job is Done ;;  17 esac

但是還是不滿意,為啥咧,因為這相當於複製了一個新文件,會讓文件特別多。於是又增加了兩項處理:

1、轉換後只保留原始文件

2、追加了修改時間批註

另外順手改了其它幾處細節。

 1 #!bin/bash   2 echo 開始:把f/test/的.sh文件從dos轉換為unix風格   3 ls #列出文件列表   4 echo 輸入:f/test/下的.sh文件名,如npcinmapcheck.sh #給予輸入提示   5 read filename #從屏幕輸入讀取dos文件名   6 filenameunix=Unix${filename} #定義unix文件名   7 cat $filename | tr -d 'r' > $filenameunix #執行轉換,移除回車符   8 cat $filenameunix > $filename #用unix文件覆蓋dos文件   9 rm -rf $filenameunix #刪除unix文件  10 echo -e 'nnn''#'腳本最後一次修改日期:`date` >> $filename #添加修改批註  11 #部分腳本有特例處理  12 case $filename in  13 "DropRate.sh" ) echo 提醒:${filename}需進入release/bin/目錄下使用 && cp $filename ../expansion_2011winter_quest/bin/${filename};;  14 "droprate.sh" ) echo 提醒:${filename}需進入release/bin/目錄下使用 && cp $filename ../expansion_2011winter_quest/bin/${filename};;  15 *.sh) echo Job is Done ;;  16 esac  17  18  19 #腳本最後一次修改日期:2011年11月 4日 14:44:47

如果修改太頻繁,腳本追加記錄會越來越多啊——不過作為版本歷史用來判斷腳本的變動程度也是可行的。。看情況再說。