Bash 如何将引用的参数从一个函数传递到另一个函数?

Bash 如何将引用的参数从一个函数传递到另一个函数?,bash,Bash,我写的剧本有点问题。。。假设我有两个函数: function foo1 { while [ $# -gt 0 ]; do echo $1 shift done } function foo2 { foo1 $@ } 我的问题如下。如果我使用space.txt执行foo1-o“文件” -o file with space.txt 但是使用带有space.txt的foo2-o“文件”或带有\space.txt的foo2-o文件,我得到 -

我写的剧本有点问题。。。假设我有两个函数:

function foo1 {
    while [ $# -gt 0 ]; do
        echo $1
        shift
    done
}

function foo2 {
    foo1 $@
}
我的问题如下。如果我使用space.txt执行
foo1-o“文件”

-o
file with space.txt
但是使用带有space.txt的
foo2-o“文件”
或带有\space.txt的
foo2-o文件,我得到

-o
file
with
space.txt

foo1从foo2接收“file with space.txt”有什么方法吗?

在函数foo2中,使用双引号:

foo1 "$@"
有关详细信息,请参见
manbash

当展开发生在双引号内时,每个参数展开为一个单独的字。也就是说,“$@”相当于“$1”“$2”


在函数foo2中,使用双引号:

foo1 "$@"
有关详细信息,请参见
manbash

当展开发生在双引号内时,每个参数展开为一个单独的字。也就是说,“$@”相当于“$1”“$2”