Bash,参数列表段

Mik*_*ike 41 arrays bash

如果你有一个python列表,你想要从2到n的元素可以做一些很好的事情

list[2:]
Run Code Online (Sandbox Code Playgroud)

我想在Bash中使用与argv类似的东西.我想将$ 2中的所有元素传递给argc到命令.我现在有

command $2 $3 $4 $5 $6 $7 $8 $9
Run Code Online (Sandbox Code Playgroud)

但这不是优雅的.会是"适当"的方式吗?

gho*_*g74 70

你也可以做"切片",$@获取bash中的所有参数.

echo "${@:2}"
Run Code Online (Sandbox Code Playgroud)

获得第二个参数

例如

$ cat shell.sh
#!/bin/bash
echo "${@:2}"

$ ./shell.sh 1 2 3 4
2 3 4
Run Code Online (Sandbox Code Playgroud)

  • 你还应该用双引号将它包装起来以避免参数中的空格出现问题(例如`echo'$ {@:2}"`用`./shell.sh 1 2"多字参数调用时将正常工作"4 5`). (9认同)
  • 值得注意的是,它也支持长度,即`“ $ {@:start:len}”` (2认同)