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.

System Requirements

System requirement is not defined

Released at 2019-09-22 00:23
yash 2.49 (2 files Hide)

Release Notes

Yet another shell (yash), version 2.49.

This version is a maintenance release.

Yet another shell (yash) バージョン 2.49



  • Added: --for-local option.
  • Changed: The --no-unset option now rejects unset variables not only in parameter expansion but also in arithmetic expansion.
  • Fixed: Expansion of ""$*, ""$@, $*"", and $@"" now correctly yields an empty string rather than nothing when there are no positional parameters.
  • Fixed: The $RANDOM variable was expanding to a value larger than 32767 on some systems.
  • Fixed: The \e escape sequence was not working in the "echo" built-in.
  • Fixed: When a last command is a subshell, the parent shell's jobs were not being cleared when entering the subshell.
  • Fixed: The job status was not being updated correctly if a process ID was reused by another process before the previous process was removed from the job list.
  • Fixed: The "typeset" built-in now prints functions that contain a simple command whose command name is a keyword in a format that can successfully re-parsed by the shell.
  • Updated completion scripts:
    • Fixed: Remote branch names are now correctly completed for the argument to Git remote/fetch/pull/push commands.
    • Fixed: Local pathname operands are now correctly completed for the rsync command.
  • 追加: --for-local オプション
  • 変更: --no-unset オプションが有効な時、パラメータ展開だけでなく数式展開でも未定義の変数をエラーにするようにした
  • 修正: 位置パラメータが無いとき ""$*, ""$@, $*"", $@"" が空文字列に展開されず "$@" の様に扱われていた
  • 修正: 環境によっては $RANDOM 変数が 32768 以上の値に展開されることがあった
  • 修正: "echo" 組込みコマンドで \e エスケープシーケンスが動いていなかった
  • 修正: コマンドリストの最後がサブシェルの場合、サブシェルの中で元のシェルのジョブをサブシェルのジョブとして扱ってしまっていた
  • 修正: ジョブが削除されるよりも前にプロセス ID が別のプロセスによって使い回された場合、新しいジョブの状態が正しく更新されないことがあった
  • 修正: "typeset" 組込みコマンドで、コマンド名が予約語になっている単純コマンドを含む関数が再解析可能な書式で出力されていなかった
  • 補完スクリプトを更新:
    • 修正: Git remote/fetch/pull/push コマンドの引数の補完でリモートのブランチ名が正しく補完されていなかった。
    • 修正: rsync コマンドの引数の補完でローカルのパス名が正しく補完されていなかった。