如果我以
运行bash脚本./myscript.sh zone=A build=release
有没有我可以根据参数读取参数而不是使用$ 1,$ 2?
答案 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
会在其环境中看到zone
和build
给定的值。