Mac標準のAutomatorで、js,cssファイルをminify化させるYuiCompressorを自動化させようとシェルスクリプトを組んでいたのですが、
よく分からないところでつまづいているので、どなたかご教授いただけないでしょうか?
求める結果
shellscript.shに以下のコードを記述
sh
1#!/bin/bash 2f='/Users/username/folder/css/file.css' 3file='/Users/username/folder/css/file.min.css' 4java -jar /Users/username/yuicompressor-2.4.8.jar $f -o $file --charset utf-8
$ source shellscript.sh を実行
ちなみにこの場合はfile.min.cssファイルが生成され実行できます。
###不明な箇所
Automatorで、クイックアクションにて新規作成したのち、
ワークフローが受け取る現在の項目:ファイルまたはフォルダ
検索対象:Finder.app
イメージ:アクション
に設定。
「選択されたFinder項目を取得」(デバッグ目的)
「シェルスクリプトを実行」
→シェル:/bin/bash
→入力の引き渡し方法:引数として
sh
1#!/bin/bash 2for f in "$@" 3do 4 basename=${f##*/} 5 ext=${basename##*.} 6 if [ $ext = "css" -o $ext = "js" ]; then 7 file=${f%.*}".min."$ext 8 java -jar /Users/username/yuicompressor-2.4.8.jar $f -o $file --charset utf-8 9 fi 10done
これで実行してみるとエラーが出力されます。
(実際にはエラーというより、js,cssファイル以外を受け取った際に表示されるデフォルトのものですが。)
なお、途中でecho $fとecho $fileを入れてみたのですが、"求める結果"のfとfileと同じ内容が入っていることを確認しています。
###質問内容
シェルスクリプトに関してはほとんど知識がないため、申し訳ないのですが思いつく対処方法が思いつきません。
Automatorの方法でも動くようにするにはどうすればよろしいでしょうか?
###その他・情報
Mac os 15.10.2(Catalina)
Automator 2.10
YuiCompressor https://github.com/yui/yuicompressor/releases
シェルスクリプト参考サイト https://ameblo.jp/itboy/entry-12259677966.html
###追記
Automatorで以下のコードを実行してみました。
sh
1#!/bin/bash 2for f in "$@" 3do 4 u='/Users/username/folder/css/file.css' 5 for co in {1..35} 6 do 7 if [${f:co:1} = ${u:co:1}]; then 8 echo $co"equal {"${f:co:1}"="${u:co:1}"}" 9 else 10 echo $co"not equal {"${f:co:1}"="${u:co:1}"}" 11 fi 12 done 13 fi 14done
実行結果ですが、
「1not equal{U=U}」
「2not equal{s=s}」
(以下略)
となりました。文字コードが異なるのが原因ということになるのでしょうか?
ただ文字コードの修正方法は未だわかっていないので、もう少し調べてみることにします。
回答1件
あなたの回答
tips
プレビュー