Download List

Project Description

Yet another shell (yash) is a POSIX-compliant command line shell, featuring more strict POSIX compliance than those of other shells, as well as powerful command line editing. So far most of yash's features have been implemented. The author is currently writing auxiliary scripts to make command completion more usable.

Released at 2016-01-09 18:00
yash 2.40

Name Size Hash Date Download count
yash-2.40.tar.gz 1.09 MB 2016-01-09 17:43 18
yash-2.40.tar.xz 676.61 KB 2016-01-09 17:43 15

Release Notes

Yet another shell, version 2.40.

This version includes many bug fixes.

Yet another shell バージョン 2.40



Yash 2.40

  • = The "unset" built-in no longer rejects variable names containing the "=" symbol as an error. They are now silently ignored.
  • = In the POSIXly-correct mode, unclosed here-documents are now treated as an error.
  • * Fixed possible arithmetic overflow errors in memory allocation which might result in an undefined behavior.
  • * Fixed crash on assigning a floating-point number in arithmetic expansion.
  • * Fixed memory leak on finding a command in a relative path from $PATH.
  • * The parameter expansion ${foo##bar*} was being treated like ${foo##bar} where the asterisk should match up to the end of the parameter value.
  • * The parameter expansion ${foo%%*} was being expanded to ${foo} where it should expand to an empty string.
  • * The "getopts" built-in no longer rejects digits as option characters.
  • * The non-interactive shell no longer exits when the "command" built-in executes the "." built-in and the script is not found.
  • * Fixed incorrect exit status of simple commands where command substitution is performed during command word expansion which yields no command line words.
  • * The "exec" built-in now correctly exits with an exit status of 127 for a script file not found.
  • * Pipes were not being connected as expected during command word expansion.
  • * The "fg" and "bg" built-ins now report an error when they fail to print the job name.


  • =: specification change
  • *: bug fix

Yash 2.40

  • = "unset" 組込みは "=" を含む変数名をエラーとせず無視するようにした
  • = POSIX 準拠モードでは、閉じられていないヒアドキュメントをエラーとするようにした
  • * メモリ確保時にメモリサイズがオーバーフローすると未定義動作に陥る可能性があったのを修正
  • * 数式展開で浮動小数点数を代入する際にクラッシュしていた
  • * $PATH 内に相対パスがあるとコマンド検索時にメモリリークすることがあったのを修正
  • * ${foo##bar*} で削除される文字列が最長マッチになっていなかった
  • * ${foo%%*} が空文字列ではなく ${foo} に展開されてしまっていた
  • * "getopts" 組込みで数字がオプションとして使えなかった
  • * "command" 組込み経由で "." 組込みを実行し、スクリプトファイルが見付からない場合、シェルを終了しないようにした
  • * コマンド置換を含むが、コマンドの単語が空に展開される単純コマンドの終了ステータスがコマンド置換の終了ステータスになっていなかった
  • * "exec" 組込みでスクリプトファイルが見付からないとききちんと終了ステータス 127 で終了するようにした
  • * コマンドの単語を展開する間、パイプが正しく接続されていなかった
  • * "fg" および "bg" 組込みがジョブ名の出力に失敗した時はエラーとするようにした


  • =: 仕様変更
  • *: バグ修正