シェルスクリプト機能について
ツール、もしくは、ツールボタンが、#!
で始まるテキストファイルであった場合に、
それをUNIX上でシェルスクリプトとして起動させることができます。
まず、アプリケーション設定ウインドウ→「その他の機能」タブ→#!で始まるツールをUNIXシェルスクリプトとして実行する をOnにしてください。
そして、ツールにシェルスクリプトを記述します。ツールの作成方法は、通常のツールと変わりません。 ただし、改行コードを必ずLFに設定してください。
例えば、次のように記述されたツールを実行すると、現在選択中のアルファベット文字列を反転して新規ドキュメントに表示します。 (ツールにコピー&ペーストすれば実行できますが、改行コードをLFに設定すること、最後の行にも改行が必要なこと、に注意してください。)
#!/bin/sh
#new
echo $2 | rev
シェルスクリプトに渡される引数
シェルスクリプトには以下の引数が渡されます。
引数 | 説明 |
---|---|
第一引数 |
編集中のファイルのパス(UNIX形式のパス) |
第二引数 |
選択中の文字列(テキストエンコーディングはUTF-8) |
シェルスクリプトの記述方法
1行目には、#!の後に、実行するコマンド(シェル)を記述して下さい。
2行目には、#の後に、以下の表のオプションを記述することにより、miの動作を指定することができます。
複数のオプションをスペースで区切って記述することが可能です。同時に実行できないものは後の記述の方が優先されます。
オプション | 説明 |
---|---|
replace_all |
現在編集中のドキュメントの内容全てを、シェルスクリプトの標準出力の内容に置き換えます。 |
replace_selected |
現在編集中のドキュメントの選択範囲を、シェルスクリプトの標準出力の内容に置き換えます。 |
new |
新規ドキュメントを開いて、そこにシェルスクリプトの標準出力の内容を表示します。 |
window xxx |
xxxというタイトルのウインドウに標準出力の内容を表示します。 |
timeout=n |
miはシェルスクリプトの終了まで処理をブロックするのですが、timeoutオプションを設定すると、終了待ちのタイムアウトをn秒間に設定します。 |
send_selected_maccode |
第二引数に渡す文字列を、現在のフォントに従ったMacOSレガシーのテキストエンコーディング
(日本語フォントならShift_JIS)で送信します。 |
result_encoding=xxx |
シェルスクリプトが返す標準出力のテキストエンコーディングがxxxであることをmiに指示します。 |