원래 스크립트 당신이 쓴 경우 출력은
newscript.sh input1 input2
그것들을 하나의 스크립트로 리팩토링 할 수 있습니다. 그러나 스크립트를 수정하고 싶지 않은 것 같습니다. 대신 두 스크립트의 실행을 래핑하는 스크립트를 만들 수 있습니다.
두 번째 스크립트가 성공하기 위해 첫 번째해야하는 경우 다음 단지의 반환 코드를 확인 두 번째 스크립트를 실행하기 전에 (첫 번째 스크립트가 제대로 오류 시나리오에서이 아닌 0을 반환한다고 가정) 첫 번째 :
#!/bin/bash
foo.sh $1 $2
if [ $? -eq 0 ]; then
bar.sh > file.csv
else
echo "foo.sh returned with an error. Skippping execution of bar.sh due to error."
fi
을
$1
및 $2
은 스크립트의 첫 번째 및 두 번째 매개 변수이며 foo.sh로 리디렉션합니다. 종종 foo.sh를 호출하기 전에 명령 행 입력을 확인하고 처리하는 함수를 작성하고 싶지만 foo.sh가 실행될 때 오류 검사를 신속하게 수행 할 수 있다면 시간이 걸리지 않을 수도 있습니다.
$?
은 이전에 실행 된 명령의 반환 코드를 저장하므로 bar.sh를 계속하기 전에 0과 동일한 지 확인합니다.
왜'foo.sh $ *; bar.sh> file.csv'? –