我想制作一个“专业”脚本,我使用 $1,$2...但现在我正在学习 getopts。
这是我的小脚本:
function name(){
echo "My name is $1"
}
function last_name(){
echo "My last name is $1"
}
function name_complete(){
}
while getopts ":n:p:" option;do
case $option in
n)
n=$OPTARG
name $n
;;
p)
p=$OPTARG
last_name $p
;;
esac
done
我想知道如何name_complete
与-n
and一起使用-p
例如:
./script.sh -n John -p Doe
我的名字是 John Doe
谢谢!
答案1
运行你的函数后你的while getopts
- 循环:
function name_complete(){
printf 'My name is %s %s\n' "$1" "$2"
}
while getopts ":n:p:" option; do
case "$option" in
n)
n=$OPTARG
;;
p)
p=$OPTARG
;;
esac
done
name_complete "$n" "$p"
请注意,您应该始终引用变量。
答案2
以此作为开始:
while getopts ":n:p:" option;do
case $option in
n)
n=$OPTARG
;;
p)
p=$OPTARG
;;
esac
done
if [ -n "$n" -a -n "$p" ] ; then
name_complete "$n" "$p"
elif [ -n "$n" ] ; then
name "$n"
elif [ -n "$p" ] ; then
last_name "$p"
else
echo At least one option is needed
fi