いくつかのコマンドを実行し、その出力を相対パスを持つログファイルにリダイレクトするとします。 3つの異なる例:
sh script.sh > logs/script1.log
./script2.sh &> logs/script2.log
./script3.sh input.txt > output.txt 2>logs/script3.err
script2.sh
実行スクリプトは同じディレクトリにありますが、存在しないのでプレフィックスをscript3.sh
付ける必要がありますが、データファイル(入力または出力)へのパスをプレフィックスとして付ける必要がありますか(または望ましいですか)。その場合、上記の3つの例は次のとおりです。./
${PATH}
sh ./script.sh > ./logs/script1.log
./script2.sh &> ./logs/script2.log
./script3.sh ./input.txt > ./output.txt 2>./logs/script3.err
私のテストでは結果は同じでしたが、常にそうですか?たぶんシンボリックリンクを使用するときは異なるかもしれません。よくわかりません。したがって、この質問です。
私が使用するコードは、./
関連データ(ログもデータです)ファイルパスの前に含まれる場合もあり、そうでない場合もあります。まだベストプラクティスに関するチーム間の合意は行われておらず、これを作りたいと思います。 (実行ファイルではなく)相対データファイルのパスが重要でない場合は、./
実行不可能なパスと一緒に使用しないことをお勧めします。実行可能でない相対ファイルパスを前に付けます。./
最良のアプローチは何ですか?
これについての権威ある文書はありますか?