我写了一个shell脚本(初学者),它工作得很好,但它包含了许多参数。
我将值分配给它们,如下所示。
url=$2
name=$3
ipadd=$5
netmask=$6
vlanid=$4
vlname=$7
有没有更好的方法,我可以使用?
感谢。
答案 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部分的每个参数,然后如果发现它将变量分割为=并设置实际内部值的值。值得为您发送给用户的东西,但也许不是因为您自己使用的东西。