문제

foo.sh :

bar() {
     return 1;
}

test.sh

#!/bin/bash
if /path/to/foo.sh bar; then
      echo "success"
else
      echo "fail"
fi

It always returns "success" regardless of the return value of bar(). How can I make this works as intended?

도움이 되었습니까?

해결책

foo.sh doesn't call the function; it just defines it. You need to first source the file, then treat bar like any other function.

. foo.sh
if bar; then
    echo success
else
    echo fail
fi
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top