gpt4 book ai didi

shell - shell脚本中的间接参数替换

转载 作者:行者123 更新时间:2023-12-02 15:16:12 25 4
gpt4 key购买 nike

我遇到了 shell 脚本问题(HP-UX、FWIW 下的 POSIX shell)。我有一个名为 print_arg 的函数,我将参数名称作为 $1 传递给该函数。给定参数的名称,然后我想打印该参数的名称和值。但是,我不断收到错误。这是我正在尝试做的事情的示例:

#!/usr/bin/sh

function print_arg
{
# $1 holds the name of the argument to be shown

arg=$1

# The following line errors off with
# ./test_print.sh[9]: argval=${"$arg"}: The specified substitution is not valid for this command.

argval=${"$arg"}

if [[ $argval != '' ]] ; then
printf "ftp_func: $arg='$argval'\n"
fi
}

COMMAND="XYZ"

print_arg "COMMAND"

我已经尝试以我能想到的各种方式重写有问题的行。我咨询过本地的神谕。我查过在线“BASH 脚本指南”。我磨快了那把波浪刃刀,擦洗祭坛,直到它闪闪发光,但后来我发现我们本地的处女供应已经减少到什么都没有了。该死!

任何有关如何获取其名称作为参数传递给函数的参数值的建议都将受到赞赏。

最佳答案

您可以使用eval,但使用直接间接作为 suggested by SiegeX如果您可以使用 bash 可能会更好。

#!/bin/sh

foo=bar
print_arg () {
arg=$1
eval argval=\"\$$arg\"
echo "$argval"
}
print_arg foo

关于shell - shell脚本中的间接参数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4380478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com