![Linux Shell Script: if 문에서 메서드를 호출하고 동시에 반환 값을 계산하는 방법](https://linux55.com/image/201764/Linux%20Shell%20Script%3A%20if%20%EB%AC%B8%EC%97%90%EC%84%9C%20%EB%A9%94%EC%84%9C%EB%93%9C%EB%A5%BC%20%ED%98%B8%EC%B6%9C%ED%95%98%EA%B3%A0%20%EB%8F%99%EC%8B%9C%EC%97%90%20%EB%B0%98%ED%99%98%20%EA%B0%92%EC%9D%84%20%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
Linux 쉘 스크립트와 관련하여 다음이 있습니다.
verifyIfFileExists(){
...
returns 0 # if the file exists
...
returns 1 # if the does not exist
}
...
something(){
verifyIfFileExists
resultVerification=$?
if [[ $resultVerification -eq 0 ]]; then
...
else
...
fi
...
}
위에 표시된 코드는 예상대로 작동합니다. 가능한지, 메서드를 호출하고 명령문에서 평가하는 방법을 알고 싶습니다. 선언을 if
피합니다 resultVerification=$?
. 다음과 같습니다.
something(){
verifyIfFileExists
if [[ $(verifyIfFileExists) -eq 0 ]]; then
...
else
...
fi
답변1
만약에주문하다
성공하면command
귀하의 경우 상태 0으로 종료하십시오.
if verifyIfFileExists; then
...
else
...
fi
[
그 [[
자체는 인수로 주어진 표현식의 평가에 따라 0 또는 1을 반환하는 명령입니다. 그래서
if [[ ...
일반 인스턴스입니다.
만약에주문하다위에 표시된 대로.
나중에 사용하려는 경우 종료 상태를 다른 변수에 저장하는 것이 유용할 수 있습니다.
... run a command
result=$?
printf "Command foo exited with result %s.\n" "$result"
if [[ "$result" -eq 0 ]]; then
...
fi
그럴 필요 없다면 그럼
command
if [[ "$?" -eq 0 ]]; then
다음과 같이 다시 작성할 수 있습니다.
if command; then
읽기가 더 쉽다고 생각합니다. 함수에 해당 이름이 있는 경우 특히 그렇습니다.예를 들어
if fileExists; then
당신은 또한 볼 수 있습니다쉘체크 SC2181더 많은 함정이 나열되어 있습니다.
답변2
그냥 사용:
if verifyIfFileExists ; then
# checking for return code 0
또는
if ! verifyIfFileExists ; then
# checking for return code 1