linux - Bash 创建变量然后为其赋值

标签 linux bash scripting

对于这个问题,我有两个值,curdircurlevel,它们在我的脚本中不断变化。我想知道是否可以创建一个变量,然后将该值用作另一个值的名称。例如

temp="dir_${curdir}_${curlevel}"
$temp=$name_of_directory  **<----Is there a legitimate way to do this?**

所以如果最初 curdir=1curlevel=0 那么 $(temp)=directory_one 等于

dir_1_0=directory_one

然后如果 curdir=2curlevel=4,我可以重置温度然后有

$(temp)=another_directory

相同
dir_2_4=another_directory

这样我就可以打电话

cd $(temp)

这会在我需要的时候将我移动到不同的目录

最佳答案

我想你想要的是使用eval。像这样:

 $ foo=bar
 $ bar=baz
 $ eval qux=\$$foo
 $ echo $qux
 baz

所以你可以做的是

eval temp=\$$"dir_${curdir}_${curlevel}"
cd $temp

关于linux - Bash 创建变量然后为其赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4882745/

相关文章:

git - 如何以非交互方式运行 git rebase --interactive?

c - 如何在 execl 系统调用中使用 cat 命令创建文本文件?

c - 将字符串宏传递给 C 程序 - 跨平台

linux - 如何在bash中输出目录的不可读内容

bash - openssl:如何在控制台中禁用 "writing RSA key"消息

bash - 根据模式连接线

linux - linux进程的内核堆栈

linux - 使用 Bluetooth 2.0 dongle headless 与 Raspberry Pi Zero 配对

linux - Bash 在 CSV 列中选择多个值

bash - 为半可移植 shell 脚本制作弹出菜单的最佳(?)方法?