Shell 스 크 립 트 전달 매개 변수 3 가지 방법 비교
#!/bin/bash
#extracting command text_text_text_line options as parameters
help_info(){
echo "NAME"
echo "\t$0"
echo "SYNOPSIS"
echo "\t$0 is a shell test about process options"
echo "DESCRIPTION"
echo "\toption like -a -b param1 -c param2 -d"
}
if [ $# -lt 0 ]
then
help_info
fi
nomal_opts_act()
{
echo -e "
### nomal_opts_act ###
"
while [ -n "$1" ]
do
case "$1" in
-a)
echo "Found the -a option"
;;
-b)
echo "Found the -b option"
echo "The parameter follow -b is $2"
shift
;;
-c)
echo "Found the -c option"
echo "The parameter follow -c is $2"
shift
;;
-d)
echo "Found the -d option"
;;
*)
echo "$1 is not an option"
;;
esac
shift
done
}
# shell ,
# : , ,
# :
getopt_act()
{
echo -e "
### getopt_act ###
"
GETOPTOUT=`getopt ab:c:d "$@"`
set -- $GETOPTOUT
while [ -n "$1" ]
do
case $1 in
-a)
echo "Found the -a option"
;;
-b)
echo "Found the -b option"
echo "The parameter follow -b is "$2""
shift
;;
-c)
echo "Found the -c option"
echo "The parameter follow -c is "$2""
shift
;;
-d)
echo "Found the -d option"
;;
--)
shift
break
;;
*)
echo "Unknow option: "$1""
;;
esac
shift
done
param_index=1
for param in "$@"
do
echo "Parameter $param_index:$param"
param_index=$[ $param_index + 1 ]
done
}
# getopt
# : getopts , , --
# : getopts
#1. set -- , , shift
#2. -a -b dog -c "earth moon" -d -f param1 param2
getopts_act()
{
echo -e "
### getopts_act ###
"
while getopts :ab:c:d ARGS
do
case $ARGS in
a)
echo "Found the -a option"
;;
b)
echo "Found the -b option"
echo "The parameter follow -b is $OPTARG"
;;
c)
echo "Found the -c option"
echo "The parameter follow -c is $OPTARG"
;;
d)
echo "Found the -d option"
;;
*)
echo "Unknow option: $ARGS"
;;
esac
done
shift $[ $OPTIND -1 ]
param_index=1
for param in "$@"
do
echo "Parameter $param_index:$param"
param_index=$[ $param_index + 1 ]
done
}
#getopts
# : :-c "earth moon"
# :-bdog
# ?
# Unknow option: ?
nomal_opts_act -a -b dog -c earth -d -f param1 param2
getopts_act -a -b dog -c "earth moon" -d -f param1 param2
getopt_act -a -b dog -c earth -d -f param1 param2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Shell alias 명령에 별칭을 설정하는 방법명령에 별명을 설정하면 명령의'작은 이름'으로 삼을 수 있지만, 이렇게 하는 것이 무슨 의미가 있습니까? 이때 별명이 작용할 수 있다.vim 명령의 별명을vi라고 정의하면 이후에 실행된vi 명령은 실제로vim 명령을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.