Fedoraマシンでターミナルを開く(またはSSHで接続する)と、プロンプトの前に次のような行が表示されます。
declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…
これは何が原因ですか?これは、.bashrc
を編集した後に発生した可能性がありますが、変更したのは「PATH =」に別のディレクトリパスを追加することだけだったと思います。
Update( heavyd の回答に対応):「declare」の~/.bashrc
、~/.bash_profile
、/etc/bashrc
をgrepして、見つかった何もありません。
/etc/bashrc
には次のものが含まれているため、~/.bashrc
を調べました。
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
上記のコード「PATH =…」、「export…」、「alias…」以外は、~/.bashrc
または~/.bash_profile
スクリプトに何も表示されません。
.bashrc
スクリプト(「bash ~/.bashrc
」を使用)または.bash_profile
スクリプトを実行すると、「宣言」のリストが表示されますが、エラーメッセージは表示されません。 (/etc/bashrc
を実行しても何も表示されません。)
~./bash_profile
は非常に単純です:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
解決済み:ありがとう andrew.n 、あなたの提案は私がそれを追跡するのを助けました。 export
を(単独で)実行すると、これらすべての「declare -x…」行が出力され、.bashrc
の「export」と「PATH =…」の間に誤ってCRを挿入したことがわかりました。
実行
env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo
詳細モードでbashを起動します。これにより、初期化ファイルの読み取り時にすべての行が出力され、実行時に初期化ファイルのすべての行が出力され、出力がfoo
というファイルにコピーされます。次に、foo
を調べて、declare -x
が呼び出される原因を確認できます。
declare ...
ステートメントの多くは、引数なしでどこかでexport
が実行された結果であることがわかりました。
.bashrc
で誤って改行を見つけました:
export
VARIABLE=value
どちらがすべきだった
export VARIABLE=value
はい、編集したため、.bashrcからのものである可能性があります。スクリプトに構文エラーが発生し、それが出力される可能性があります。
次のように入力して、これらの行が.bashrcに存在することを確認できます。
grep declare ~/.bashrc
少なくともこれらの4行がコンソールに印刷されているのが見えるはずです。プロンプトから.bashrcスクリプトを実行して、エラーが出力されるかどうかを確認することもできます。
bash ~/.bashrc