某深夜。 今やっている処理を終わった後に Mac をスリープさせたい、と思った。 Mac をスリープさせるコマンドを調べたら、簡単に見つかった。
ターミナルで次のコマンドを実行するとスリープする |
osascript -e 'tell application "Finder" to sleep' |
そういえば、昔使っていたある OS には、 zzz というコマンドがあったっけ (とても覚えやすい)。 そうだ、上のコマンドを zzz というエイリアスにしよう。
ところでエイリアスは普通
alias 自分の選んだ名前='コマンド'という書式で定義する。 今の場合は、 コマンドの中にシングル・クォート ' が含まれているので、 シングル・クォートの入れ子になってしまう。 以前やったときは、 シングル・クォートの入れ子をどうやって解決するか分からなかった。
というわけで次のようにすれば良い。
alias zzz='osascript -e "tell application \"Finder\" to sleep"' |
以上は、bash の場合だが、tcsh の場合はどうするか。
これはうまく行かない |
alias zzz 'osascript -e "tell application \"Finder\" to sleep"' |
シェル・スクリプトにするという手はあるけれど、 久しぶりなので時間を投入する気になった。 “nested single quotes” で調べ直して見た。 https://stackoverflow.com/questions/1250079/how-to-escape-single-quotes-within-single-quoted-stringsというWWWページが見つかった。そこに書いてあることを適用すると
alias zzz 'osascript -e '"'"'tell application "Finder" to sleep'"'" |