【发布时间】:2026-02-04 18:20:05
【问题描述】:
在 bash 脚本文件中,我是否可以在具有参数的函数中使用命令行参数?
或者我是否需要将所有命令行参数分配给一个变量才能在函数体中访问它们?
echo $1 # may be "abc"
function f() { $1; } # will be "def", but I need "abc" here
f "def"
PS:我在堆栈溢出时发现了一个similar question,但这个问题不涉及我在这里描述的问题?
【问题讨论】:
-
只要使用
f "$1" -
AFAIK,没有办法从 shell 函数中访问脚本级命令行参数。
$1、$@和$*的含义在函数中被函数的上下文覆盖。您可以在函数外部创建一个包含命令行参数的数组——args=("$@")——并在函数内引用它。