根据命令行输出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 $@

  

 

posted @ 2020-07-16 16:09  knowledge-is-power  阅读(572)  评论(0编辑  收藏  举报