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”