变量分配更好的方法

时间:2016-10-12 19:35:42

标签: linux bash shell

我写了一个shell脚本(初学者),它工作得很好,但它包含了许多参数。

我将值分配给它们,如下所示。

url=$2
name=$3
ipadd=$5
netmask=$6
vlanid=$4
vlname=$7

有没有更好的方法,我可以使用?

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用read代替多项作业:

f=$'\6'  # or any other control character 
IFS=$f read -d'' -r _ url name vlanid ipadd netmask vlname _ < <(printf "%s$f" "$@")

_会忽略$1以及$8之后的任何内容。

答案 1 :(得分:0)

我认为真正做得更好的唯一方法是更改​​为--flag = value设置,如果只是为了不使参数的顺序变得重要。

./ myscript.sh --url = http://www.example.com --ip = 10.42.56.23 --netmask = 24

这将需要解析--flag部分的每个参数,然后如果发现它将变量分割为=并设置实际内部值的值。值得为您发送给用户的东西,但也许不是因为您自己使用的东西。