1. ホーム
  2. bash

shのソースの置き換え

2023-09-05 05:41:18

質問

環境変数を設定したいのですが、通常は

source script.sh

しかし、今はブートプロセス中に自動化しているので、デフォルトでルートが起動するようです。 sh シェルで起動します。 このスクリプトはどのように sh ?

どのように解決するのですか?

ドットコマンド' . ' は、C シェル (および Bash) の source コマンドに相当します。 これは POSIX で規定されています ( dot を参照)、Bourne シェルと Korn シェルでサポートされています(そして zsh と思っています)。

. somefile

シェルがファイルを探すには $PATH を使用してファイルを探しますが、ファイルは読めればよく、実行可能である必要はないことに注意してください。

以下のコメントにあるように、もちろんファイルの相対パス名や絶対パス名を指定することができます - スラッシュを含む名前は $PATH . ですから

. /some/where/somefile
. some/where/somefile
. ./somefile

はすべて somefile を見つけることができます。 .ls -l と入力し、表示されたファイルを確認します)。

世界の学徒は団結せよ! そうです、もしカレントディレクトリがルートディレクトリであれば /some/where/somefile./some/where/somefile は、シンボリックリンクやハードリンクがなくても、同じファイル、同じ実パスを参照することになります(そして、このように ../../some/where/somefile ).