Ubuntuで私は好きです
shopt -s autocd
私の.bashrc
ファイルに「cd」と入力して自動CDを作成します。つまり、ディレクトリ名を入力し(タブ補完機能も利用可能)、Enterキーを押し、そのディレクトリがある場合はcdを押します。
OSXでは、これは私のシステムでは機能しません.bashrc
これに「依存」するにはどうすればよいですか?それでは、2つのオペレーティングシステム間で.bashrcを共有して維持できますか?
私はファイルに対して次のことができることを知っています。
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
tmuxなどの画面依存アプリケーションの場合は、
if [[ ! $TERM =~ screen ]]; then
if [ -n "$(type -P tmux)" ]; then
exec tmux
fi
fi
しかし、私はこれを行うことができますか?私はできますかshopt -s autocd
?
答え1
autocd
バッシュに導入されましたバージョン4。したがって、ユニバーサルクロスプラットフォームソリューションは次のようになります。
[ "${BASH_VERSINFO[0]}" -ge 4 ] && shopt -s autocd
${BASH_VERSINFO[0]}
bashのメジャーバージョンです。必要に応じてマイナーバージョンを使用できます${BASH_VERSINFO[1]}
。man bash
詳しくは参考資料を参照してくださいBASH_VERSINFO
。
答え2
とても簡単です。
shopt -s autocd 2>/dev/null
値を変更せずにオプションが利用可能であることを確認するには、またはなしshopt
で呼び出します。-s
-u
if shopt autocd >/dev/null 2>/dev/null; then …
答え3
簡単な方法は、オペレーティングシステムの名前を確認し、それに応じて対処することです。uname
OSXで何が返されるかはわかりませんが、おそらく異なります。したがって、次のことができます。
[[ $(uname) = Linux ]] && shopt -s autocd
つまり、この作業を必ず行う必要がありますか? OSXはデフォルトでログインシェルを実行し、それを取得するために~/.bashrc
変更しない限り~/.profile
無視されます。したがって、その中に何かがある場合は、~/.bashrc
とにかくLinux上でのみ実行されます。