스크립트 간 매개변수 전달

스크립트 간 매개변수 전달

x분/일보다 오래된 파일을 삭제하는 스크립트가 있습니다.

find $1 -type f -mmin +$2 -exec rm -f {} \; (name is test2.sh)

test2.sh예를 들어 매개변수를 다른 스크립트 에 전달해야 합니다 .test3.sh

답변1

매개변수 확장이 다음 test2.sh과 같이 올바르게 인용되었다고 가정합니다.

find "$1" -type f -mmin +"$2" -exec rm -f {} \;

test3.sh그러면 다음과 같이 호출 될 수 있습니다 .test2.sh

test2.sh "some file name" 5

$1in은 test2.sh문자열로 확장 some file name되고 .$25

이는 test2.sh변수에 나열된 디렉토리에 있다고 가정합니다. 그렇지 않은 경우 전체 경로(절대 또는 상대)를 사용하십시오. 예:PATHtest3.sh

./test2.sh "some file name" 5

test2.sh또한 처음에 실행 가능하게 만들어졌으며 chmod +x test2.sh올바른 -라인이 있다고 가정합니다 #!.


아래 의견에서 명확히 한 후:

스크립트 test3.sh는 다음을 수행할 수 있습니다(스크립트라고 가정 bash).

read -p 'Enter directory name: ' dirname
read -p 'Enter number of days: ' days

minutes=$(( days * 60 * 24 ))

./test2.sh "$dirname" "$minutes"

다음 단계는 사용자 입력이 $days실제 정수이고 $dirname유효한 디렉터리 이름인지 확인하는 것입니다.

bash그렇지 않다면 sh:

printf 'Enter directory name: '
read -r dirname

(etc.)

대부분의 구현에는 find다음이 포함됩니다 -delete.

find "$1" -type f -mmin +"$2" -delete

관련 정보