藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 http://www.lslnet.com 2006年6月26日 11:18


請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

我是個SHELL新手,寫得漏洞和想法很多,希望大家指正。
這段代碼是昨天寫得,想實現的功能是把name_list.txt裡面的內容-----按行排列的文件名。

一次讀取一行,也就是說一次讀取一個文件名,然後進行壓縮。我想了兩種方式。我都寫出來,請大家指正。

一,這個是用READ命令來實現的。我說了我是剛學SHELL,公司剛來項目,之前誰都沒用過SHELL,把我趕上架了。

while read list
do
unzip "$list" > vms/aaa
if [ $? -ne 0 ];then
Func_Syslog "ERR" "ADM-61003" "$list解壓縮失敗。" #LOG輸出。
exit 1
fi
done < name_list.txt
二,這段的思想是定義一個函數,然後再主函數中,用傳參數的形式,把name_list.txt的內容傳給這個函數。
while [ $# -eq 0 ]
do
list=$1
unzip "$list" > vms/aaa
shift
if [ $? -ne 0 ];then
Func_Syslog "ERR" "ADM-61003" "$list解壓縮失敗"  #LOG輸出。
exit 1
fi
done


真誠希望大家和我交流,QQ81857404
MSNhandsomeice1024@hotmail.com

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

這個帖子大家能清楚完整地看到麼?謝謝。

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

能不能註釋一下你的腳本
unzip ....?

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

unzip 不是解壓縮命令麼?

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

unzip "$list" > vms/aaa 是要記錄unzip了哪個文件麼?
每次循環不會覆蓋aaa麼?


$# -eq 0 時會有$1麼?

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

while [ $# -eq 0 ] #執行循環。
do
list=$1 #變量list取參數(也就是name_list.txt裡面的內容,文件名)
unzip "$list" >> vms/aaa         #解壓縮到vms/aaa
if [ $? -ne 0 ];then                                   #判斷返回值
Func_Syslog "ERR" "ADM-61003" "$list解凍失敗。" #LOG輸出。
exit 1
shift                                                                   #指向下一個參數
fi
done


這是我的意圖。那個shift寫錯了原來。

謝謝大家的回帖,有人告訴我說是因為我代碼裡面有日文大家抵制,真的很冤枉哈。我在大連,大連我不知道大家是否知道哈,全是對日的。所以。。。請大家不要因為這個排擠我。謝謝。

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

這個程序最大的問題就是,你怎麼保證你那個txt的文件裡的內容傳到參數的時候,能把裡面的文件名一條一條的分別傳給$1,$2,$3,。。。。

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

-->

個人認為沒什麼大問題
1  unzip "$list" >> vms/aaa
2  但是覺得不應該有exit 1 出錯就一定要exit嗎

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

> vms/aaa

個人認為這個沒什麼意義吧? 不顯示unzip的信息?

另,大連是殖民地?:mrgreen:

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

>> vms/aaa   應該是這個。是解壓縮後的文件放到這個文件夾。另外請教下,顯示unzip的信息,是什麼意思?是什麼效果?

出錯後,業務書要求是直接終了。


解放前大連確實是日本的殖民地。現在大連80%的軟件是對日的。

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

-->
change to :
cd vms/aaa
unzip $list

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

我原來的寫法,不對麼?不是輸出定向的麼?

請教大家個問題。大家不要因為我寫日文代碼就排擠我啊55555

是不是用unzip $list -d /dir  呢?



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com