当前位置: 技术问答>linux和unix
bash shell
来源: 互联网 发布时间:2016-02-04
本文导语: find_idx() { [ $# -eq 2 ] || return -1 local a i eval a=("${$1[@]}") //这个怎么理解? i=0 for v in "${a[@]}" //这个怎么理解? do [ "$v" = "$2" ] && echo $i && return ...
find_idx()
{
[ $# -eq 2 ] || return -1
local a i
eval a=("${$1[@]}") //这个怎么理解?
i=0
for v in "${a[@]}" //这个怎么理解?
do
[ "$v" = "$2" ] && echo $i && return
let "i++"
done
echo -1
}
{
[ $# -eq 2 ] || return -1
local a i
eval a=("${$1[@]}") //这个怎么理解?
i=0
for v in "${a[@]}" //这个怎么理解?
do
[ "$v" = "$2" ] && echo $i && return
let "i++"
done
echo -1
}
|
find_idx()
{
[ $# -eq 2 ] || return -1
local a i
eval a=("${$1[@]}") #//转义,使a=数组名.$1为传入的参数名,${$1[@]}是列出数组的所有成员.${$1[@]},是不扩展开数组,("${$1[@]}")可用改成("${$1[@]}"),意思是把数组当成一个一个成员,
而不是扩展成一个字符串赋值给数组a.eval是执行后面的参数.
echo "$a" aaaaaaa
i=0
for v in "${a[@]}" ;#遍历数组 ."${a[@]}"的意思就是扩展开a数组的所有成员.
do
echo $v==$2
[ "$v" = "$2" ] && echo $i && return
let "i++"
done
echo -1
}
c()
{
b[0]="aa" #定义个数组
b[1]="bb"
b[2]="cc"
find_idx b "bb" #函数的第一个参数为数组名,第二个参数为要查找的数据
}
c
{
[ $# -eq 2 ] || return -1
local a i
eval a=("${$1[@]}") #//转义,使a=数组名.$1为传入的参数名,${$1[@]}是列出数组的所有成员.${$1[@]},是不扩展开数组,("${$1[@]}")可用改成("${$1[@]}"),意思是把数组当成一个一个成员,
而不是扩展成一个字符串赋值给数组a.eval是执行后面的参数.
echo "$a" aaaaaaa
i=0
for v in "${a[@]}" ;#遍历数组 ."${a[@]}"的意思就是扩展开a数组的所有成员.
do
echo $v==$2
[ "$v" = "$2" ] && echo $i && return
let "i++"
done
echo -1
}
c()
{
b[0]="aa" #定义个数组
b[1]="bb"
b[2]="cc"
find_idx b "bb" #函数的第一个参数为数组名,第二个参数为要查找的数据
}
c