さまざまなバージョンのBashをさまざまなHPCノード、VM、または個人用ワークステーションで実行している可能性がある、比較的異種の環境で作業しています。私はログインスクリプトをGitリポジトリに配置しているので.bashrc、「もしこのホストなら...」タイプの面倒さをあまり使わずに、同じように全面的に使用したいと思います。
私のようなバッシュ≤拡大し4.1のデフォルトの動作cd $SOMEPATHにcd /the/actual/path押したときにTabキーを。バッシュ4.2以上では、あなたがする必要があるだろうshopt -s direxpandし、この動作を再度有効にし、それが利用可能になっていませんでした4.2.29まで。ただし、これはほんの一例です。別の、おそらく関連するshoptオプションcomplete_fullquote(それが何をするのか正確にはわかりませんが)もv4.2でデフォルトの動作を変更した可能性があります。
ただし、direxpand以前のバージョンのBashでは認識されないためshopt -s direxpand、自分のを使用しようとする.bashrcと、古いBashのノードにログインするたびにエラーメッセージがコンソールに出力されます。
-bash: shopt: direxpand: invalid shell option name
私は何をしたいのは、条件付きの周りをラップでshop -s direxpandバッシュの旧バージョン(擦れずに、堅牢な方法でバッシュ> 4.1にそのオプションを有効にするには、すなわち、ちょうどにエラー出力をリダイレクトしません/dev/null)。
.bashrcです。$BASH_VERSINFO私自身の啓蒙のために、実行中のシェルのメジャー/マイナーバージョンを調べる方法を記録したかったので、自分の回答を投稿しました。:)