在写脚本时候,有时候需要将从命令⾏⾥传的参数两两组合形成⼀个键值对,肯定有其他其他的写法,这⾥主要是想通过shift命令的实现。⽐如 参数1:host_ip
参数2:127.0.0.1
参数3: user
参数4: root
and
可能这些参数是固定的,也可能是⾃定义的
固定传参⽰例
#!/bin/bash
function get_key_value()
{
if [[ -z "$1" ]];then
echo "$key=NULL"
else
echo "$key=$1"
fi
}
function main()
{
if [[ $# -eq 0 ]];then
echo "--------------------------usage------------------------------------"
echo " sh $0 [aaa 123] [bbb 123] [ccc 123]"
exit
fi
while [[ $# -gt 0 ]]
do
key=$1
case $key in
aaa)
shift
get_key_value $1
;;
bbb)
shift
get_key_value $1
;;
ccc)
shift
get_key_value $1
;;
*)
echo "--------------------------usage------------------------------------"
echo " sh $0 [aaa 123] [bbb 123] [ccc 123]"
;
;
esac
shift
done
}
main $@
⾃定义传参⽰例
#!/bin/bash
function get_key_value()
{
if [[ -z "$1" ]];then
echo "$key=NULL"
else
echo "$key=$1"
fi
}
function main()
{
if [[ $# -eq 0 ]];then
echo "--------------------------usage------------------------------------" echo " sh $0 [key1 value1 key2 value2 ...]"
exit
fi
while [[ $# -gt 0 ]]
do
key=$1
shift
get_key_value $1
shift
done
}
main $@