スクリプトのCronエントリに値を渡す

スクリプトのCronエントリに値を渡す

別のスクリプト(Get_Files.sh)を呼び出して、次の変数の値を取得するスクリプト(main.sh)があります。

File_to_Refresh="$(sh /Aug/work/Get_Files.sh /Aug/Work/Universal_File.txt)"

3つの異なるファイル(つまり3つの異なる値を持つUniversal_File.txt)と3つの異なる日付に対してmain.shスクリプトをスケジュールする必要があります。

したがって、スクリプトを一般化するために、Cron EntryからGet_Files.shに通常のファイルを渡そうとします。

どうすれば同じ効果が得られますか?

sh /Aug/Work/main.sh /Aug/Work/Universal_File.txt のようにスクリプトを手動で実行すると、次のことが機能しますが、cronを介して実行すると機能しません。

File_to_Refresh="$(sh /Aug/work/Get_Files.sh "$1")"

クローナ:

45 08 * * * sh /Aug/Work/main.sh /Aug/Work/Universal_File.txt

ベストアンサー1

$11 日に 1 つずつ 3 つの cron エントリがある場合 (コメントで説明されているように)、各 cron エントリで使用されるファイルを引数として指定し、main.sh スクリプトで使用できる必要があります。

$ cat main.sh
File_to_Refresh=$(sh sub.sh $1)
echo FileToRefresh: $File_to_Refresh

$ cat sub.sh
echo Sub \$1: $1

$ ./main.sh /Aug/Work/File1.txt
FileToRefresh: Sub $1: /Aug/Work/File1.txt

$(xxx)の周りにタグが必要かどうかわかりません"。私は両方の方法で動作するようです。

おすすめ記事