以下のような、引数に渡されたデータをパーセントデコードするスクリプトがあったとします。
上記の場合はパーセントエンコードの処理が一回のみだったので、デコードの処理も一回で済みました。
もしエンコード処理が複数回 施されていたとしたら、どうでしょう。
スクリプトを実行して、デコード結果をコピペして、またスクリプトを実行して。。。なんてことを手動でするのは面倒でイケてないです。エンコード処理が100回とかされていたら、途中で心が折れてしまうでしょう。
そんなときは以下のワンライナー試してみましょう。
arg=value; for i in {1..5}; do arg=$(sh your-script.sh $arg); echo $arg; done
今回の用途に合わせると以下のようになります。
arg=%25252525e3%2525252581%25252525bb%25252525e3%2525252581%2525252592%25252525e3%2525252581%25252525b5%25252525e3%2525252581%252525258c; for i in {1..5}; do arg=$(python urldecode_utf-8.py -s $arg); echo $arg; done
※ループの回数がはっきりしないときは、for文のループカウンタを適当に大きな値に設定するか、あるいは for i in {1..5}; を while true; に置き換えて無限ループにすれば OK
楽チンですね。
以上。