インタラクティブシェル。OSX, cygwin, Linux, FreeBSDで動きます。 ガベージコレクションがついていて、簡易なオブジェクト指向ができます。perlやrubyのようなテキスト処理を行なう内部コマンドを装備しています。全ての内部コマンドにはサンプル付きのヘルプがついてきます。補完は自身によって記述されていて、IDEのようにxyzshの文法に基づいて補完されます。migemoによる日本語ファイル名の補完もあります。
An interactive shell script language on OSX, cygwin, Linux, FreeBSD. This features simple object oriented scripting with garbage collection, text processing like perl or ruby and containes manual for all inner commands with their samples. Offcourse you can type commands with completion which is based on xyzsh grammer like IDE and is defined by itself.
> ls -F docs/ main.c samples/ sub.c > ls | each ( | chomp | -d && | print ) docs samples > ls -F | grep -v / main.c sub.c > ls | each ( ! | chomp | -d && | print ) main.c sub.c > ls | each ( | printf "-+- %s -+-"\n ) | join " " -+- docs -+- -+- main -+- -+- samples -+- -+- sub.c -+- > ls | each ( | scan . | join " " ) d o c s m a i n . c s a m p l e s s u b . c > cat data Gorou Yamanaka Rei Tanaka Yumiko Shiratori > cat data | each ( | =~ Yamanaka && | print ) Gorou Yamanaka > cat data | lines 0 1 Gorou Yamanaka Rei Tanaka > cat data | each ( | split | lines 1 0 | join ) Yamanaka Gorou Tanaka Rei Shiratori Yumiko > vim student.xyzsh class Student ( | var first_name second_name age country def show ( var first_name second_name age country | printf "name: %s %s¥nage: %s¥ncountry: %s¥n" ) ) object student student::run ( print "Yamanaka Gorou 23 Japan" | split | Student ) > load student.xyzsh > student::show name: Yamanaka Gorou age: 23 country: Japan > print 1 | var -local i; ls | scan . | while(| eval "|$i print |>") (|> join ""; ++ i ) A UT HOR SCHA NGELO GLICEN SEMakef ileMakef ile.inREA DMEREADME. jaUSAGEUSAG E.jacompleti on.xyzshconfi g.hconfig.h.in config.logconfi g.statusconfigur econfigure.inhelp .xyzshinstall.shli bxyzsh.1.7.0.dylibl ibxyzsh.1.dyliblibxy zsh.dylibmanread_hist ory.xyzshsrcxyzshxyzsh .dSYMxyzsh.xyzsh > ls | lines 0 1 | scan . | each ( | chomp | x 5 | pomch ) AAAAA UUUUU TTTTT HHHHH OOOOO RRRRR SSSSS CCCCC HHHHH AAAAA NNNNN GGGGG EEEEE LLLLL OOOOO GGGGG
様々な使い勝手の向上。mfiler4向けの不具合修正。
1. コマンドが見つからない場合のエラーメッセージを改良しました。ちゃんとプログラム名が書かれます。
2. FreeBSDでの実行に考慮しました。今までは画面が乱れたりしてました。
3. ジョブのタイトルが分かりやすくなりました。
4. exit -forceした場合全てのジョブを消していましたが、そうするとmfiler4からの実行で問題が起こるので、直しました。(ジョブがあってコマンドラインに移るとファイラー画面に戻るには全てのジョブを消さないといけない)
5. write -error とした場合ファイルにエラー出力を書き込むだけでなく入力をそのまま出力するようにしました。このように使えます。
> ./error-output-program | write -error data-from-error | write data
今までのように動かすには
> ./error-output-program | write -error data-from-error | write -force /dev/null
もしくは
> ./error-output-program | write -error data-from-error > /dev/null
とすれば良いです。
エラー出力について使い方をUSAGEとUSAGE.jaに書きました。エラー出力は使いづらいかもしれません。