#!/bin/sh
foo()
{
printf "$1"
}
RANDOM_VAR="hello\n"
foo $RANDOM_VAR
当您将一个或多个变量传递给函数时,在这种情况下foo
,可以通过$1
$2
访问它们,依此类推;你如何从foo
内退一步并打印原始变量的名称,在这种情况下是RANDOM_VAR
?
答案 0 :(得分:1)
简而言之,您不能或不能从函数内部告诉哪些变量用于创建函数的参数。不能保证参数是变量或单个变量 - 例如:
foo 123
foo ${HOME}:${PATH}
此外,如果功能关心,它可能是错误的。它应该尽可能地独立,因此独立于这些问题。如果不是,则表明该功能可能没有功能上的凝聚力。