web-dev-qa-db-ja.com

スクリプトシバンで「-l」を使用することの長所と短所は何ですか

私は最近、crontabロギングの問題の簡単な修正を思いつきました。この特定の修正(「ログインシェルフラグ」を使用してスクリプトを実行する)を使用することの長所と短所は何でしょうか。

#!/bin/bash -l 
2
Pier

[以下は、不特定の「ロギングの問題」が、通常はプロファイルから継承された、欠落している環境設定に関連していることを前提としています。]

-lオプションは、/etcおよびホームディレクトリからさまざまな「プロファイル」スクリプトをすべて読み取るようにbashに指示します。 Bashは通常、対話型セッション(bashがコマンドラインパラメーターなしで実行される)に対してのみこれを実行します。

通常のスクリプトには、プロファイルを読み取るビジネスはありません。与えられた環境で実行することになっています。とはいえ、個人用スクリプトに対してこれを実行することをお勧めします。おそらく、スクリプトが環境に緊密にバインドされていて、通常のセッションの外で実行する予定の場合です。

Crontabは、セッションの外部でスクリプトを実行する1つの例です。そうです、実行してください。

スクリプトが純粋にcrontabを使用するためのものである場合は、Shebangに-lを追加しても問題ありません。スクリプトを他の方法で使用する可能性がある場合は、crontab自体で環境問題を修正することを検討してください。

0 * * * * bash -l hourly.sh
7
ams