質問編集履歴

5

文言修正

2022/08/29 21:52

投稿

tex999
tex999

スコア4

test CHANGED
File without changes
test CHANGED
@@ -84,6 +84,7 @@
84
84
 
85
85
 
86
86
  ### 修正したコード
87
+ ひとつずつ画像処理するたびにカウントしてプログレスバーに反映するようにコードを修正
87
88
  ```sh
88
89
  #!/bin/sh
89
90
 

4

コード修正追記

2022/08/29 21:42

投稿

tex999
tex999

スコア4

test CHANGED
File without changes
test CHANGED
@@ -79,8 +79,9 @@
79
79
  ./webp.sh
80
80
 
81
81
 
82
+ ### 下記の回答を受けコードを修正
82
83
  > プログレスバーを表示する部分は問題ないですが、処理の中身が1ファイルずつ処理するのでなく、ファイル全部を処理するように書いてありますので、全部終わってから表示が進みます。
83
- という回答を受け、コードを修正
84
+
84
85
 
85
86
  ### 修正したコード
86
87
  ```sh

3

コードの修正

2022/08/29 21:24

投稿

tex999
tex999

スコア4

test CHANGED
File without changes
test CHANGED
@@ -70,13 +70,13 @@
70
70
 
71
71
  具体的な実行手順
72
72
  画像フォルダ内にシェルスクリプトを設置しコードを保存
73
- vi ./webp,sh
73
+ vi ./webp.sh
74
74
 
75
75
  権限付与
76
- chmod 775 webp,sh
76
+ chmod 775 webp.sh
77
77
 
78
78
  実行
79
- ./webp,sh
79
+ ./webp.sh
80
80
 
81
81
 
82
82
  > プログレスバーを表示する部分は問題ないですが、処理の中身が1ファイルずつ処理するのでなく、ファイル全部を処理するように書いてありますので、全部終わってから表示が進みます。

2

コードの修正

2022/08/29 21:23

投稿

tex999
tex999

スコア4

test CHANGED
File without changes
test CHANGED
@@ -64,6 +64,7 @@
64
64
 
65
65
  ```sh
66
66
  find . -type f -name "*.jpg" -or -name "*.jpeg" -or -name "*.png" | xargs -P 8 -L 1 -I {} cwebp {} -o {}.webp >/dev/null 2>&1
67
+ ```
67
68
 
68
69
  ### 追記
69
70
 

1

コードの修正

2022/08/29 21:22

投稿

tex999
tex999

スコア4

test CHANGED
File without changes
test CHANGED
@@ -65,3 +65,58 @@
65
65
  ```sh
66
66
  find . -type f -name "*.jpg" -or -name "*.jpeg" -or -name "*.png" | xargs -P 8 -L 1 -I {} cwebp {} -o {}.webp >/dev/null 2>&1
67
67
 
68
+ ### 追記
69
+
70
+ 具体的な実行手順
71
+ 画像フォルダ内にシェルスクリプトを設置しコードを保存
72
+ vi ./webp,sh
73
+
74
+ 権限付与
75
+ chmod 775 webp,sh
76
+
77
+ 実行
78
+ ./webp,sh
79
+
80
+
81
+ > プログレスバーを表示する部分は問題ないですが、処理の中身が1ファイルずつ処理するのでなく、ファイル全部を処理するように書いてありますので、全部終わってから表示が進みます。
82
+ という回答を受け、コードを修正
83
+
84
+ ### 修正したコード
85
+ ```sh
86
+ #!/bin/sh
87
+
88
+ total=$(find . -type f -name "*.jpg" -or -name "*.jpeg" -or -name "*.png" | wc -l)
89
+
90
+ echo "$total"
91
+
92
+ images=$(find . -type f -name "*.jpg" -or -name "*.jpeg" -or -name "*.png")
93
+
94
+ # プログレスバー全体の幅
95
+ box_width=40
96
+
97
+ for image in $images; do
98
+
99
+ # 処理を実行
100
+ cwebp "$image" -o "$image"".webp" >/dev/null 2>&1
101
+
102
+ # カウント
103
+ count=`expr $count + 1`
104
+
105
+ # 現在のバーの横幅
106
+ bar_width=$(( box_width * ${count} / total ))
107
+
108
+ # バーの空きスペース
109
+ space=$(( box_width - bar_width ))
110
+
111
+ # 現在の割合
112
+ percent=$(( ${count} * 100 / total ))
113
+
114
+ # バーを出力
115
+ printf '\r['
116
+ yes "#" | head -n "${bar_width}" | tr -d "\n"
117
+ yes " " | head -n "${space}" | tr -d "\n"
118
+ printf "] %s%%" "${percent}"
119
+ done
120
+
121
+ printf '..done\n'
122
+ ```