在将数组作为参数传递时苦苦挣扎了一段时间,但是无论如何它还是无法正常工作。我已经尝试过如下所示:
#! /bin/bash
function copyFiles{
arr="$1"
for i in "${arr[@]}";
do
echo "$i"
done
}
array=("one" "two" "three")
copyFiles $array
有解释的答案将是不错的。
编辑:基本上,我最终将从另一个脚本文件调用该函数。请尽可能解释约束条件。
扩展没有索引的数组只会给出第一个元素,使用
copyFiles "${array[@]}"
代替
copyFiles $array
使用她的爆炸
#!/bin/bash
使用正确的函数语法
有效的变体是
function copyFiles {…}
function copyFiles(){…}
function copyFiles() {…}
代替
function copyFiles{…}
使用正确的语法获取数组参数
arr=("$@")
代替
arr="$1"
所以
#!/bin/bash
function copyFiles() {
arr=("$@")
for i in "${arr[@]}";
do
echo "$i"
done
}
array=("one 1" "two 2" "three 3")
copyFiles "${array[@]}"
输出为(我的脚本的名称为foo
)
$ ./foo
one 1
two 2
three 3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句