스크립트의 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

$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) 주위에 태그가 필요한지 잘 모르겠습니다 ". 제게는 두 가지 방식으로 모두 작동하는 것 같습니다.

관련 정보