yesコマンド
30分プログラム、その707。yesコマンドを作ってみた。
yesコマンドというのは、延々とyesを出力し続けるコマンドです。一般的なUnixシステムならインストールされているはずなので、ターミナルでyesと打てば使えるはずです。
非常に簡単に作れちゃうんですが、SMLで実行可能ファイルを作る方法を試してみたかったので、作ってみました。
SMLで実行可能ファイルを作る方法
適当な関数を書いたあと、それをエクスポートする。
SMLofNJ.exportFn ("yes",yes);
すると、yes.ppc-darwinのようなファイルが生成されるので、それをsmlコマンドに渡してやると実行できる。
$ sml @SMLload=yes.ppc-darwin arg1 arg2 ...
使い方
$ ./yes yes yes yes ... $ ./yes hoge hoge hoge hoge ...
ソースコード
実行用シェルスクリプト。
#!/bin/sh sml @SMLload=yes.ppc-darwin $@
本体。
fun yes (_, args) = let val msg = case args of [] => "yes\n" | x::_ => x ^ "\n" in while true do print msg; OS.Process.success end; SMLofNJ.exportFn ("yes",yes);