Bash
如何獲取參數數組的bash索引?
我想要參數索引,
並且可以通過 dummy var 得到它:
dummy=( $@ ) echo ${!dummy[@]}
但是有沒有直接的方法來獲得它們,比如
$!@ ... not working $!* ... not working
… 或類似的東西?
注意:我想在沒有 arr var 的情況下擁有的原始功能是:
function indexof() { search="$1"; shift; arr=( $@ ) for i in "${!arr[@]}"; do [ "$search" == "${arr[$i]}" ] && return $i; done return -1 }
您可以從參數的數量計算:
seq ${#@}
你不需要一個虛擬數組。您可以使用計數器變數:
indexof() { search="$1"; shift i=0 for arg; do [ "$search" = "$arg" ] && return $i ((i++)) done return -1 }
請注意,預設情況下
for arg; do
使用"$@"
,這就是in "$@"
可以省略的原因。