このUbuntuシステムでは、新しい端末を起動するとエラーが表示されます。問題はこれである:
bash完了が()から派生すると、. /usr/share/bash-completion/bash_completion
シェルは発生せず、bash
リストを含む一部の変数定義local words=()
は失敗します(bash
リストのみが理解されるため)。
私の解決策は明示的に呼び出すことでしたが、bash /usr/share/bash-completion/bash_completion
ターミナルを開くときに別のシェルが呼び出される理由を知りたいです。私はbashが私のデフォルトなので、ソーシングプロセス中にも使用されると思いました。
bash-completionファイルを呼び出す前に1つ作成し、echo $0
出力はbash
。
購入にbashを使用しないのはなぜですか?
コメントの問題を解決するには、次の手順に従ってください。
これは、新しいコンソールを起動したときに発生します。これは、カーネルが新しいターミナルウィンドウであるcallを起動し、~/.profile
順番に. "$HOME/.bashrc"
bash完了(. /usr/share/bash-completion/bash_completion
)を実行することを意味します。
~/.bash_completion
ファイルがありません。
echo "$0"
失敗して実行されないため、bash_completionの中に入れることはできません。
my.bashrc
と.profile
Ubuntu に付属する基本項目です。私はそうではありません.bash_profile
。デフォルトのUbuntu 14.04にあります。/etc/skel/
答え1
問題は、シェル、chsh、または外部エントリにあることではありません。これは地域の愚かなエイリアスです。一部の人は、ローカルIPアドレスを表示するエイリアスを作成し、名前を「local」として指定するのが良い考えだと思いました。
local cword words=()
失敗は、シェルがアレイを処理できないために発生しません。エイリアスが拡張されていて()
そこに意味がないので失敗します。