@legitwhiz

legit whiz 技術レポート

View on GitHub

Bashメジャーバージョンアップで何が変わった?

Bashが2019年1月7日にメジャーバージョンアップ(5.0)されました。

bash4.0 RC1が2009年1月12日なので10年ぶりのメジャーバージョンアップ。

と言うか10年以上も現役なんて凄いですねw

Bash 5.0 releasedを見るとbugfixと新機能の追加です。

主な変更点は、

・nameref変数に関するbugfix

・最も注目すべき新機能は、いくつかの新しいシェル変数です。BASH_ARGV0、EPOCHSECONDS、およびEPOCHREALTIME。

・historyは、履歴を範囲指定して削除することができるようになりました。

bash-4.4とbash-5.0の間に互換性のない変更がいくつかあります。

となっていますが、nameref変数の解決方法に限った内容だそうです。

新機能

Bash 5.0 releasedから最新版をダウンロードし、解凍しNEWSを読んでみました。

新しく追加された変数

・BASH_ARGV0

$0と同様みたいですが、同じ機能なら、あまり追加機能としてどうなのかと・・・w

・EPOCHSECONDS

UNIX時間の秒数

dateコマンドにUNIX時間を出力するオプションがあるので・・・。

・EPOCHREALTIME。

UNIX時間のマイクロ秒数

マイクロ秒まで使うことってスクリプトだと少ないかと・・・。

history範囲指定削除

コマンド履歴を範囲指定で削除できるようです。

そもそも、削除する必要って・・・。

その他

・ビルトインコマンドであるwaitが-fオプションを付けることで、ちゃんと待てるようになった。

・umaskが今まで3桁だったのが4桁まで対応できるようになった。

・Readline系も変わったみたい。キーバインドでnext-screen-lineprevious-screen-lineが追加され、Insertキーで上書き出来るようになった。