2016-10-12 30 views
1

我写了一个shell脚本(初级),它工作正常,但它包含了一些参数。变量赋值更好的方法

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

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

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

谢谢。

+0

这是细;它是直接的,它明显地表现了它的作用,它不再超过它的需求。 – chepner

+0

如果您感到困扰,您可以在一行上放置多个作业。 – chepner

+0

见:http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash/14203146#14203146 – agc

回答

0

可以使用read而不是多个任务:

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

_$8后会忽略$1和任何东西。

+0

如果我有一个值分配给两个变量 – Sherry

+0

假设$ 2对于vlanid和x? – Sherry

+0

'X =“$ VLANID”'将不得不完成后'read' – anubhava

0

我会看到真正做一个更好的工作是改变一个--flag =值设置,如果仅仅是为了不使参数作为重要的顺序的唯一方法。

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

然后这将需要解析每个参数为--flag一部分,那么如果发现劈裂=处的变量,并设置实际内部值的值。值得一提的是你正在向用户交付的东西,但也许不是那些你正在使用的东西。