問題タブ [shopt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
411 参照

bash - 解決済み: Catalina bash shopt direxpand がありません

Windows と Linux から来た macOS は初めてです。bash を使用したいのですが、Catalina で bash をアップグレードする方法を見つけました。現在のバージョンは次のとおりです。

GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)、coreutilsもインストールしました。

.bashrc に direxpand を設定しようとしています (これは *nix バリアントで期待どおりに動作します): shopt -s direxpand

しかし、.bashrc が供給されると、エラーが発生します。

-bash: shopt: direxpand: invalid shell option name

オンラインで検索して数時間費やしましたが、答えが見つかりません。誰か助けてもらえますか?

更新 28/07/20 14:08 GMT

興味深いことに、投稿する前に他のアドバイスに従って、brew で bash をインストール/usr/local/bin/bashし、ターミナル アプリがそれを使用できるようにシェルを設定する必要がありました。

からの出力bash --version

GNU bash, version 5.0.18(1)-release (x86_64-apple-darwin19.5.0)

しかし、echo $BASH_VERSION与えます:

3.2.57(1)-release

それで、何かが正しくないのですか?

また、実行中の出力にはshoptdirexpand が表示されません。

解決済み 2020 年 7 月 28 日 20:00 GMT

同様の問題を抱えている人のために、ここに私が見つけたものがあります。

Catalina と一緒にインストールされた bash には、Linux にあるのと同じシェル オプションが含まれていませんでした。

完全な解決策は、coreutils をインストールし、brew で bash することです。 brew install coreutils bash

次に、新しいバージョンの bash をシェル sudo vi /etc/shellsに追加します。/usr/local/bin/bash

次に、ユーザー シェルを変更します。 chsh -s /usr/local/bin/bash

次に、端末設定>一般>シェルで>コマンド(完全なパス)で開き、新しいbashを追加します/usr/local/bin/bash

その後、shopt -sdirexpand がオプションになり、.bashrc が期待どおりに動作することを確認します。