web-dev-qa-db-ja.com

ロードする前に.bash_profileを検証しますか?

多くのコマンドラインプログラムには、設定ファイルをロードする前に検証できるスイッチが用意されています。 (たとえば、nginx -c path/to/file -tを使用すると、ユーザーはpath/to/fileにある構成ファイルを検証してから、そのファイルでnginxを起動することができます。

Bashの.bash_profileに同様の機能はありますか?

6
StudentsTea

Bashには -nオプション があります

コマンドを読み取りますが、実行しないでください。これは、スクリプトの構文エラーをチェックするために使用できます。

Stderrに出力し、$を設定しますか?構文に問題がある場合は2に。次のように.bash_profileで使用できます。

bash -n .bash_profile
if [[ $? -ne 0 ]]
then
   # handle an error
fi

コメント文字列に基づいて、これらのグローバル変数を別の方法で追加するための提案を追加せざるを得ません。ユーザーの.bash_profileの最後に「return」が付いている、やや工夫されたケースを考えてみましょう。 (変数の割り当てなどの)何かを追加すると、将来のbash呼び出しによってスキップされます。これらのグローバル変数を/ etcの下のどこかに配置することを検討してください(これらのファイルが/ etc/profileによって供給されると仮定して/etc/profile.dなど)。そうすれば、さまざまなシェル構文(csh、bash)に基づいてそれらを設定でき、ユーザーの環境で設定されているかどうかを確認する必要はありませんOR環境ファイル。

もう1つの方法は、これらのグローバル変数の割り当てを選択したカスタム/ etcファイルに配置し、.bash_profileファイルにコードを追加して、そのファイルが存在する場合はそのファイルを取得することです。これには、現在の計画と同じ欠点(ユーザーのローカルファイルの編集)がありますが、ユーザー/シナリオごとに異なるグローバルファイルを使用する柔軟性が追加されています。

5
Jeff Schaller