我正在编写一个调用另一个脚本的非常简单的脚本,我需要将参数从当前脚本传播到我正在执行的脚本.
例如,我的脚本名称是foo.sh和调用bar.sh
foo.sh:
bar $1 $2 $3 $4
Run Code Online (Sandbox Code Playgroud)
如何在不明确指定每个参数的情况下执行此操作?
假设我已经定义了一个function abc()将处理与分析传递给我的脚本的参数相关的逻辑.
如何将我的bash脚本收到的所有参数传递给它?params的数量是可变的,所以我不能像这样硬编码传递的参数:
abc $1 $2 $3 $4
Run Code Online (Sandbox Code Playgroud)
编辑.更好的是,我的函数有没有办法访问脚本参数的变量?
在许多SO问题和bash教程中,我看到我可以通过两种方式访问bash脚本中的命令行参数:
$ ~ >cat testargs.sh
#!/bin/bash
echo "you passed me" $*
echo "you passed me" $@
Run Code Online (Sandbox Code Playgroud)
结果如下:
$ ~> bash testargs.sh arg1 arg2
you passed me arg1 arg2
you passed me arg1 arg2
Run Code Online (Sandbox Code Playgroud)
$*和之间有什么区别$@?
应该何时使用前者,何时使用后者?