Skip to content

Instantly share code, notes, and snippets.

@mattintosh4
Last active June 4, 2022 21:41
Show Gist options
  • Save mattintosh4/4165783 to your computer and use it in GitHub Desktop.
Save mattintosh4/4165783 to your computer and use it in GitHub Desktop.
Automator 用シェルクリプト集 その1

Shell script for Automator Part.1

Automator のシェルスクリプトアクションで使えるサンプル集です。「アプリケーション」や「サービス」を作成するときにどうぞ。


入力の種類について

Automator のシェルスクリプトでは入力の種類を「 stdin 」または「 引数として 」から選択できます。設定を間違うと正しく動作しませんので注意して下さい。

  • stdin: stdin
  • args: 引数として

&& afplay "〜" って何?

処理が正常に完了した場合にサウンドを再生します(ほとんどが Finder でファイル操作を行った時と同じサウンドです)。不要であれば && afplay … 以降は削除してもかまいません。

# SHELL: /bin/bash
# INPUT: args
#
# DESCRIPTION
# -----------
# 選択したフォルダやファイルの絶対パスをクリップボードにコピーします。
printf "$1" | pbcopy &&
afplay "/System/Library/Sounds/Hero.aiff"
# SHELL: /bin/bash
# INPUT: stdin
#
# DESCRIPTION
# -----------
# ファイルの文字コードを SJIS から UTF-8 に変換し、「utf-8_***」というファイルを作成します。
# Windows で製作された CSV ファイルなどに使えます。
#
# ATTENTION
# ---------
# 同名のがファイルがある場合は上書きしますので注意して下さい。
while read
do
test -f "$REPLY" && iconv -f SJIS -t UTF-8 "$_" > "${_%/*}/utf-8_${_##*/}"
done && afplay "/Applications/iChat.app/Contents/Resources/File Transfer Complete.aiff"
# SHELL: /bin/bash
# INPUT: args
#
# DESCRIPTION
# -----------
# 選択したフォルダを高圧縮(bzip2/UDBZ)なディスクイメージに変換します。
#
# ATTENTION
# ---------
# 入力項目をフォルダに限定して下さい。
# ファイルサイズが大きい場合は作成後にマウントして異常がないか確認して下さい。
hdiutil create -format UDBZ -srcdir "$1" "$1".dmg && afplay "/Applications/iChat.app/Contents/Resources/File Transfer Complete.aiff"
# SHELL: /bin/bash
# INPUT: args
#
# DESCRIPTION
# -----------
# 選択したフォルダを Windows でも読み込み可能なディスクイメージ(ISO/UDF)に変換します。
#
# ATTENTION
# ---------
# 入力項目をフォルダに限定して下さい。
# ファイルサイズが大きい場合は作成後にマウントして異常がないか確認して下さい。
hdiutil makehybrid -udf -o "$1".iso "$1" && afplay "/Applications/iChat.app/Contents/Resources/File Transfer Complete.aiff"
# SHELL: /bin/bash
# INPUT: stdin
#
# DESCRIPTION
# -----------
# 入力からフォルダを除外するフィルタです。Automator のアクションでもフォルダを除外できますが、
# パスにドットフォルダが含まれていると正常に動作しないようなのでこちらをおすすめします。
while read
do
test -f "$REPLY" && echo $_
done
# SHELL: /bin/bash
# INPUT: args
#
# DESCRIPTION
# -----------
# 選択したファイルをターミナルエディタの nano で開きます。一時ファイルが作成されますが、再起動時に削除されます。
test -f "$1" && {
echo nano \"$1\" > ${TMP:=/tmp/nano_$$}
chmod +x $TMP
open $TMP
}
# SHELL: /bin/bash
# INPUT: args
#
# DESCRIPTION
# -----------
# 選択したテキストファイルの内容をクリップボードにコピーします。複数選択も可能ですが順番が狂う可能性があります。
cat "$@" | pbcopy && afplay "/Applications/iChat.app/Contents/Resources/File Transfer Complete.aiff"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment