Tim*_*Tim 5 shell array variable
($@) 扩展到位置参数,从 1 开始。
我怎样才能得到位置参数,从两个或更一般的开始n
?
我想使用从两个开始的位置参数,作为命令的参数,例如,
myCommand $@
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 11
对于从第 5 个开始的位置参数:
zsh
或yash
。
myCommand "${@[5,-1]}"
Run Code Online (Sandbox Code Playgroud)
(请注意,与往常一样,上面的引号很重要,否则每个元素都会受到 split+glob in 的影响yash
,或者在 中删除空元素zsh
)。
ksh93
,bash
或zsh
:
myCommand "${@:5}"
Run Code Online (Sandbox Code Playgroud)
(再次,引号很重要)
类伯恩壳(包括上述所有壳)
(shift 4; myCommand "$@")
Run Code Online (Sandbox Code Playgroud)
(使用子shell,所以转移只发生在那里)。
类似 csh 的外壳:
(shift 4; myCommand $argv:q)
Run Code Online (Sandbox Code Playgroud)
(子壳)
fish
:
myCommand $argv[5..-1]
Run Code Online (Sandbox Code Playgroud)rc
:
@{shift 4; myCommand $*}
Run Code Online (Sandbox Code Playgroud)
(子壳)
rc
/ es
:
myCommand $*(`{seq 5 $#*})
Run Code Online (Sandbox Code Playgroud)es
:
myCommand $*(5 ...)
Run Code Online (Sandbox Code Playgroud)$ foo=(1 2 3 4)
$ echo "${foo[@]}"
1 2 3 4
$ echo "${foo[@]:0:2}"
1 2
echo "${foo[@]:2}"
3 4
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
788 次 |
最近记录: |