我如何才能从第三个开始访问其中的值$@
?现在我将它们从三传递到九,但我认为有更好的方法:
while getopts ":n" opt "$3 $4 $5 $6 $7 $8 $9"; do
答案1
对我来说这似乎是一种古怪的争论方式,但是:
[kbrandt@kbrandt: ~/scrap] cat args
args=("$@")
echo ${args[0]}
echo ${args[@]:1:2}
echo ${args[@]:0:$#}
[kbrandt@kbrandt: ~/scrap] bash args foo bar baz biz
foo
bar baz
foo bar baz biz
我建议你看看常见问题答案关于命令行参数(基本上是 getopts 或 loop/case/shift)。
答案2
我假设您在这种情况下使用的是 bash?
如果是这样,你应该使用转移。
一个例子:
shift.sh的内容:
#!/bin/bash
shift 3
echo $*
结果:
graeme@graeme:~$ ./shift.sh one two three four five six
four five six