我写了一个shell脚本(初级),它工作正常,但它包含了一些参数。变量赋值更好的方法
我值分配给他们,如下所示。
url=$2
name=$3
ipadd=$5
netmask=$6
vlanid=$4
vlname=$7
是否有更好的方法,我可以使用?
谢谢。
我写了一个shell脚本(初级),它工作正常,但它包含了一些参数。变量赋值更好的方法
我值分配给他们,如下所示。
url=$2
name=$3
ipadd=$5
netmask=$6
vlanid=$4
vlname=$7
是否有更好的方法,我可以使用?
谢谢。
可以使用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
和任何东西。
我会看到真正做一个更好的工作是改变一个--flag =值设置,如果仅仅是为了不使参数作为重要的顺序的唯一方法。
./myscript.sh --url = http://www.example.com --ip = 10.42.56.23 --netmask = 24
然后这将需要解析每个参数为--flag一部分,那么如果发现劈裂=处的变量,并设置实际内部值的值。值得一提的是你正在向用户交付的东西,但也许不是那些你正在使用的东西。
这是细;它是直接的,它明显地表现了它的作用,它不再超过它的需求。 – chepner
如果您感到困扰,您可以在一行上放置多个作业。 – chepner
见:http://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash/14203146#14203146 – agc