相关疑难解决方法(0)

如何在bash中将变量的值用作另一个变量的名称

我想声明一个变量,其名称来自另一个变量的值,我编写了以下代码:

a="bbb"
$a="ccc"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.完成这项工作的正确方法是什么?

bash

42
推荐指数
6
解决办法
7万
查看次数

Bash - 将“嵌套”变量的值获取到另一个变量中[编辑:间接变量扩展]

我试图将“嵌套”变量的值获取到另一个变量中和/或直接使用该值,如下所示

下面是一个示例场景,它准确地解释了我陷入困境的地方

$ USER1_DIR=./user1/stuff
$ USER2_DIR=./user2/stuff
$ USER3_DIR=./user3/stuff

#User will be taken as input, for now assuming user is USER1 
$ USER="USER1"
$ DIR=${USER}_DIR

$ echo $DIR
>> USER1_DIR

$ DIR=${${USER}_DIR}
>> -bash: ${${USER}_DIR}: bad substitution
Run Code Online (Sandbox Code Playgroud)

挑战一:

当输入为 USER1 时,获取 ./user1/stuff 的 DIR 值

或者

当输入为 USER1 时,获取 ./user1/stuff 作为输出

在完成挑战 1 后,我必须向用户目录中的文件添加一些内容,如下所示


期望的输出如下


$ echo "Some stuff of user1" >> $DIR/${DOC}$NO

# Lets say DOC="DOC1" and NO="-346"
# So the content has to be added to ./user1/stuff/DOC1-346
# Assume …
Run Code Online (Sandbox Code Playgroud)

linux bash sh

5
推荐指数
1
解决办法
3185
查看次数

BASH中的变量变量

我想在bash中询问有关变量变量的一些帮助.我已经阅读了一些关于它的文章,但就我而言,我不知道该怎么做.让我看看我的问题:

该数组包含其他数组的名称,我想打印这些数组的值.在内心,我需要变量变量.

#!/bin/bash
declare -a array=(dir1 dir2 dir3)
declare -a dir1=(1 2 3)
declare -a dir2=(a b c)
declare -a dir3=(9 8 7)

for elem1 in "${array[@]}"
do
  for elem2 in "${variableVariable[@]}"
  do
    echo "$elem1 : $elem2"
  done
done
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的

dir1 : 1
dir1 : 2
dir1 : 3
dir2 : a
dir2 : b
dir2 : c
dir3 : 9
dir3 : 8
dir3 : 7

variables bash

1
推荐指数
1
解决办法
264
查看次数

变量内部的Shell变量

这种替代有什么问题.

$ m_d_ver=0.2
$ m=mod
$ d=dom
$ echo ${$m_$d_ver}
-bash: ${$m_$d_ver}: bad substitution
Run Code Online (Sandbox Code Playgroud)

谢谢,

bash

1
推荐指数
1
解决办法
3593
查看次数

标签 统计

bash ×4

linux ×1

sh ×1

variables ×1