按名称读取命令行参数

时间:2012-08-22 08:07:23

标签: linux bash

如果我以

运行bash脚本
./myscript.sh zone=A build=release

有没有我可以根据参数读取参数而不是使用$ 1,$ 2?

3 个答案:

答案 0 :(得分:0)

希望这是你要求的:

A="try"
try="something"
echo ${!A}
> something

答案 1 :(得分:0)

没有。 Unix shell是一种古老的技术,哈希映射在当时是众所周知的,但不是“时尚”。他们需要超过1个字节才能实现,因此专业人员不想使用这种浪费的技术。

你还能做什么?通常的解决方案是getopt(1)

另一种方法是将所有选项写入文件并输出:

echo "$@" | tr ' ' '\n' > options
. ./options

echo "zone=${zone}"

答案 2 :(得分:0)

这接近你想要的。

set -k
./myscript.sh zone=A build=release

的行为与

相同
zone=A build=release ./myscript.sh

也就是说,myscript.sh会在其环境中看到zonebuild给定的值。