bash argpaser 튜로리얼
stage
)가 기준숫자(target
)보다 작은지(-le
) 확인하는 예제이다.
run.sh
에서 test.sh
를 인자를 함께 받아 수행된다.run.sh
stage=3
target=5
sh test.sh --stage ${stage} --target ${target}
test.sh
# error code
usage()
{
cat << EOF
usage: bash ./run.sh --stage ${target} --target ${target}
-s | --stage
-t | --target
-h | --help
EOF
}
# default args
# 사전에 기본인자값을 설정하고 싶은면 해당 순서에 기입한다.
# args에 인자값이 부여되면 해당 변경 값으로 설정된다.
target=0
# loop args($1)
while [ "$1" != "" ]; do
case $1 in
-s | --stage )
shift
stage=$1
;;
-t | --target )
shift
target=$1
;;
-h | --help ) usage
exit
;;
* ) usage
exit 1
esac
shift
done
# check args
if [ -z $stage ] || [ -z $target ]; then
echo "stage or target is required"
exit
fi
echo "stage: $stage"
echo "target: $target"
if [ $stage -le $target ]
then
echo $stage" is less than $target"
else
echo $stage" is more than $target"
fi
echo "Done my_test!!"