[問題] 寫一隻sh轉換圖片

看板Linux作者 (沒法度)時間15年前 (2010/08/26 23:01), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/2 (看更多)
因為mogrify好像沒有遞迴子資料夾的功能 所以我拿某人寫的sh改寫來用 有幾個問題想解決: 1、遇上檔名有空格的資料夾就會失效。 2、要怎寫才能增加轉換的格式? (例如:png、bmp、gif > jpg ) 3、遇上格式大小寫也會失效? (png?PNG?) #!/bin/bash function START() { for fileName in `ls -F | grep '.JPG'` #找尋資料夾內所有的PNG圖檔 do echo ' Converting: "'$fileName'"...'; #輸出轉換中訊息 mogrify -resize 1280X1024 "${fileName%.JPG}.jpg"; #轉換指令 done; for folderName in `ls -F | grep '/'` #深入子目錄 do folderName=${folderName%/*}; #稍微修正目錄表示方式,顯示比較美觀 echo ' Into: "'$folderName'".'; #輸出訊息 cd "$folderName"; #移動至該目錄 START; #遞迴呼叫 cd ..; #子目錄完畢後回原目錄 done; } read -p 'Please pick a DIR:' dir; #輸入要進行作業的資料夾名稱 cd "$dir"; #切換到下層目錄 echo 'Here we go!'; #程序開始訊息 START; #執行遞迴函數 echo 'Done!'; #完成訊息 -- :「我叔叔以前有兼差做消波塊 <( ̄︶ ̄)> <( ̄︶ ̄)> 小時候我都稱那個做 "肉粽" ( ′-`)y-~ 」 鄉民a:「驚!」 鄉民b:「這個不能惹!」 鄉民c:「靠!比mini158還猛!」 摘錄自《 -快樂的童年》ψ http://ncd-nocando.blogspot.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.193.6

08/27 00:03, , 1F
1.可以先把檔名做轉換,最後在轉回去。
08/27 00:03, 1F

08/27 00:22, , 2F
3.副檔名大小寫一律轉小寫,對檔案也沒影響
08/27 00:22, 2F

08/27 12:28, , 3F
改IFS ?
08/27 12:28, 3F

09/03 18:37, , 4F
mogrify不是可以一次轉很多檔案嘛,你這樣好像一次轉一個?
09/03 18:37, 4F
文章代碼(AID): #1CTe6pHH (Linux)
文章代碼(AID): #1CTe6pHH (Linux)