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 2018-12-22 22:22
yash 2.48 (2 files Hide)

Release Notes

Yet another shell (yash), version 2.48.

This version introduces the [[ ... ]] command syntax and the local built-in. Various fixes and improvements have been applied as well.

Yet another shell (yash) バージョン 2.48 です。

このバージョンでは [[ ... ]] 構文と local 組込みコマンドを追加しました。またさまざまな修正と改善を行いました。


Yash 2.48

  • Added: The double-bracket command (the [[ ... ]] syntax)
  • Added: The local built-in
  • Added: The '--le-predict-empty' option
  • Added: The prompt string now can be defined with the $YASH_PS... variables.
  • Changed: Command line prediction no longer shows suggestion before you start typing a command. Use the new '--le-predict-empty' option to restore the previous behavior.
  • Changed: The default value of $PS1 has been changed.
  • Fixed: The line number is now correctly counted in arithmetic expansions that contain newlines.
  • Fixed: Subshells in the EXIT trap were unexpectedly exiting with the exit status of the last command executed before the EXIT trap on the main shell.
  • Fixed: A new EXIT trap that was set in a subshell in the EXIT trap was unexpectedly being ignored.
  • Fixed: The typeset built-in was crashing when printing a function that contains a here-document that contains a command substitution that contains more than one command.
  • Fixed: The typeset built-in was forgetting to print here-document contents when printing a function that contains a process substitution (or redirection) that contains here-documents.
  • Fixed: The variable name token in the for command and the word following a here-document redirection operator are now correctly parsed even when it resulted from an alias substitution whose value begins with a blank.
  • Fixed: The do keyword in a for loop is no longer subject to alias substitution.
  • Fixed: An invalid semicolon that appears at the beginning of a line as a result of alias substitution in a for loop is now correctly rejected.
  • Changed: For more strict POSIXly-correctness, some syntactic constructions are now regarded as an error in the POSIXly-correct mode:
    • An IO_NUMBER token cannot be the operand of a redirection.
    • Keywords immediately following a redirection are not recognized.
  • Updated the sample initialization script (yashrc):
    • Changed: The prompt strings are now defined with the $YASH_PS... variables.
    • Fixed: Window title update should now work on more terminals.
    • Fixed: Any predefined handlers for SIGTSTP, SIGTTIN, and SIGTTOU are now cancelled so that jobs can be suspended properly.
  • Updated completion scripts:
    • Fixed: git: pathnames are now correctly completed with the latest Git.
    • Added: git-grep: support new options in Git 2.19.1.
    • Added: git-stash: support new options in Git 2.18.0.
    • Added: ping: support some common options
    • Changed: ssh, ssh-keygen: support new options in OpenSSH 7.7.

Yash 2.48

  • 新機能: 二重ブラケットコマンド ([[ ... ]] 構文)
  • 新機能: local 組込みコマンド
  • 新機能: --le-predict-empty オプション
  • 新機能: プロンプトを $YASH_PS... 変数で定義できるようにした
  • 変更: コマンドライン推定機能はコマンドを打ち始める前には動作しないのをデフォルトにした
  • 変更: "$PS1" の初期値を変更
  • 修正: 改行を含む数式展開の中で行番号が正しく数えられていなかった
  • 修正: EXIT トラップ内のサブシェルの終了ステータスが誤って元のシェルの EXIT トラップ開始前の終了ステータスになっていた
  • 修正: EXIT トラップ内のサブシェルで新たな EXIT トラップを設定しても無視されていた
  • 修正: typeset 組込みコマンドで、複数のコマンドを含むコマンド置換を含むヒアドキュメントを含む関数を表示するときクラッシュしていた
  • 修正: typeset 組込みコマンドで、ヒアドキュメントを含むプロセス置換 (またはプロセスリダイレクト) を含む関数を表示するときヒアドキュメントの内容が表示されていなかった
  • 修正: for ループの変数名トークンあるいはヒアドキュメント演算子の直後のトークンが、値が空白で始まるエイリアス置換の結果である場合に、誤って構文エラーになっていた
  • 修正: for ループの do がエイリアス置換の対象になっていた
  • 修正: for ループでエイリアス置換により行頭に ; が来る場合にエラーにならないことがあった
  • 修正: POSIX 準拠モードで、POSIX で認められていない構文をエラーにした
    • IO_NUMBER トークンをリダイレクトの対象にできないようにした
    • 予約語をリダイレクトの直後に置けないようにした
  • 初期化スクリプト (yashrc) のサンプルを更新:
    • 変更: プロンプトを $YASH_PS... 変数で定義するようにした
    • 修正: より多くの端末で動作するようウィンドウタイトルの設定方法を変更
    • 修正: SIGTSTP, SIGTTIN, SIGTTOU でジョブが確実に停止するようにシグナルの無視を明示的にキャンセルするようにした
  • 補完スクリプトを更新:
    • 修正: git: 最新の Git でもファイルパスが正しく補完できるようにした
    • 新機能: git-grep: Git 2.19.1 までの新しいオプションに対応
    • 新機能: git-stash: Git 2.18.0 までの新しいオプションに対応
    • 新機能: ping: いくつかの環境で共通のオプションをサポート
    • 変更: ssh, ssh-keygen: OpenSSH 7.7 までの新しいオプションに対応