根据命令行输出key-value键值对
在写脚本时候,有时候需要将从命令行里传的参数两两组合形成一个键值对,肯定有其他其他的写法,这里主要是想通过shift命令的实现。
比如
参数1:host_ip
参数2:127.0.0.1
参数3: user
参数4: root
and so on...
可能这些参数是固定的,也可能是自定义的
固定传参示例
#!/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 $@
欢迎多交流(QQ:616793474/329003748),谢谢!

浙公网安备 33010602011771号