首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从shell脚本中的数组返回变量名

,可以通过间接引用的方式实现。在shell脚本中,可以使用eval命令来实现间接引用。

具体步骤如下:

  1. 定义一个数组,其中存储了需要返回变量名的元素。
  2. 使用循环遍历数组,每次取出一个元素。
  3. 使用eval命令将取出的元素作为变量名进行间接引用,将变量的值赋给一个新的变量。
  4. 将新的变量输出,即可得到变量名。

下面是一个示例代码:

代码语言:txt
复制
#!/bin/bash

# 定义一个数组,存储需要返回变量名的元素
array=("var1" "var2" "var3")

# 循环遍历数组
for element in "${array[@]}"
do
  # 使用eval命令将元素作为变量名进行间接引用
  eval "value=\$$element"
  
  # 输出变量名和对应的值
  echo "变量名:$element,变量值:$value"
done

在上述示例中,我们定义了一个名为array的数组,其中存储了三个变量名:"var1"、"var2"、"var3"。通过循环遍历数组,并使用eval命令将数组元素作为变量名进行间接引用,将变量的值赋给新的变量value。最后,输出变量名和对应的值。

这种方法可以方便地从数组中返回变量名,并获取其对应的值。在实际应用中,可以根据具体需求进行适当的修改和扩展。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云Shell脚本开发:https://cloud.tencent.com/document/product/440/31542
  • 腾讯云云服务器CVM:https://cloud.tencent.com/product/cvm
  • 腾讯云云函数SCF:https://cloud.tencent.com/product/scf
  • 腾讯云弹性MapReduce:https://cloud.tencent.com/product/emr
  • 腾讯云容器服务TKE:https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell脚本数组常见使用方式

数组定义: shell数组定义是使用 小括号来表示,其中数组元素之间用空格作为分隔,比如: $ a=(1 2 3 abcd China) 2. 数组访问: a....访问特定数组元素,比如访问第2个元素,那么利用下标index=1进行访问: index支持负值,表示后向前访问, 第一个元素index =0, 如果后向前,那么最后一个元素index 可以表示为...追加元素到数组: shadow@DESKTOP-SRI6HMB ~ $ echo ${a[*]} 1 2 b abcd China shadow@DESKTOP-SRI6HMB ~ $ a[${#a[...数组名称中含有shell变量: 当数组名称中含有shell变量时候,此时随着shell变量变化,那么引用数组自然也就不同;此时可以通过如下方式实现 变量嵌套: 嵌套变量有两个符号,一个用来组合成完整变量名称...,另一个用于 标记组合后内容是一个变量,而后一个符号需要用 单引号括起来,剩余部分需要用双引号括起来;然后用echo 来显示这个变量,但因为 单引号 引用字符不会被shell解释,所以输出结果是单引号

3K20

数组-在Shell脚本基本使用介绍

Shell脚本在运维工作是极其重要,而数组shell脚本运用无论是在循环或运算方面都是非常实用一个环节。...下面是对shell脚本数组方面一些操作在此进行记录,希望能帮助到有兴趣朋友~ 1.数组定义 [root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8) [root@bastion-IDC...5 6 7 8 用${数组名[下标]} 下标是0开始 下标是:*或者@ 得到整个数组内容 3)赋值: [root@bastion-IDC ~]# a[1]=100 [root@bastion-IDC...[下标] 可以清除相应元素,不带下标,清除整个数据。...[@或*]:起始位置:长度} 切片原先数组返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

3.9K100

shell脚本】$ 在shell脚本使用

shell脚本 '$' 与不同符号搭配其表示意义也会不同 特殊标志符 含义 $0 当前脚本文件名 $n 传递给脚本或函数参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数参数个数 $* 传递给脚本或函数所有参数 $@ 传递给脚本或函数所有参数 $?...上个命令退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 形式输出所有参数

6.1K20

mongoDB定时导出数据shell脚本

目标:编写一个shell脚本,以便能够将mongoDb数据导出成为csv格式文件。要求:1. 为了避免导出巨量数据,仅需要过滤出当月数据和上个月数据即可。2....由于当天数据是不完整,所以需要排除当天数据以下是一个例子,将代码保存为.sh文件后使用 chmod +x 将该脚本设置为可执行,然后使用crontab命令将脚本加到定时任务当中 #!...baseDate declare -i baseTime baseTime=$((date --date "$baseDate" +"%s" * 1000)) 导出指定数据表数据...}}}" -o $mypath/$2.csv else $exportCmd -d $1 -c $2 -f $3 -o $mypath/$2.csv fi } 导出第一张表所有数据...为当月和上月数据 echo 'export snsDev.T_Comment' fields="_id,del,from,mbId,mbOwner,nwId,ownerId,sendTime" exportData

1.3K22

20.18 shell数组

shell数组 {a[2]} 读取第三个元素,数组0开始 echo {a[*]} 等同于 {a[@]} 显示整个数组 数组赋值 a[1]=100; echo shell数组...2} 倒数第3个元素开始,截取2个 数组替换 echo ${a[@]/3/100} a=(${a[@]/3/100}) shell数组 数组,就是一串字符创或者一串数字,形成一个变量,把这个变量叫做数组...(数组就是0 开始) [root@hf-01 shell]# echo ${b[1]} 2 [root@hf-01 shell]# echo ${b[2]} 3 [root@hf-01 shell]...b 把数组值清空 [root@hf-01 shell]# echo ${b[*]} [root@hf-01 shell]# 数组分片 [root@hf-01 shell]# [...倒数第三个开始,截取2个 必须写成 0-3 [root@hf-01 shell]# echo ${a[*]:0-3:2} 8 9 [root@hf-01 shell]# 数组替换 数组替换和

53010

shell脚本$符号意义

// shell脚本$符号意义 // 今天是远程办公第4天,渐渐找到了一点在家办公节奏了,改了几个shell脚本,在改动过程,发现还有一些知识点需要巩固,这里写出来,加深下印象。...关于$符号,大家肯定都不陌生,在shell脚本,$作用还是比较大多,这里将所有的$组合都列出来,大家可以看下效果。 $组成命令大概有下面几个: $0,$1...$?,$!...结果是0 可以看到,第一次运行ls -l a.txt时候,由于我们目录没有a.txt这个文件,所以返回是1,第二次由于test.sh文件是存在,所以返回结果是0 3 $$ $$指的是脚本运行的当前进行...sleep 10命令,脚本运行完会睡眠10s,脚本打印出来了值60658,此时我们查看当前脚本进程号,发现子进程进程id是60658 4 $*和$@ 这两个放在一起,主要是因为他们都代表引用所有参数...反应脚本某个命令进程号。

4.2K10

MakefileShell脚本简介

给很多刚接触Makefile的人: 1、Makefile可以嵌入shell脚本,而且能像shell脚本中一样,各种命令、控制结构都可使用。 2、Makefile主要结构是 ......只有在command位置shell脚本才是有效,也就是只有在“生成目标的规则处”写shell脚本才是shell脚本,其它位置shell都是无效。...3、Makefileshell,不同行在不同进程执行,不同行直接不能传递变量,所以很多时候shell都尽量使用反斜杠()来把相关内容串成一行。...4、Makefile变量和shell变量是两个不同东西,并且为了避免Makefile变量和shell变量冲突,引用Makefile变量最好使用$(Makefile_Var),引用shell变量时最好使用...但如果在纯粹shell编程,纯shell脚本里可以使用$VAR来引用VAR这个变量。 收藏于 2012-08-08

2K80

Shell脚本 DevNull 用途

在命令行和脚本中都非常有用 用途 /dev/null 通常被用于丢弃不需要输出流,或作为用于输入流空文件,这些操作通常由重定向完成,任何你想丢弃数据都可以写入其中 丢弃标准输出 在写shell脚本时候...,只想通过命令结果执行后面的逻辑,而不想命令执行过程中有一大堆中间结果输出,这时候可以把命令执行过程输入全部写入 /dev/null 现有 a.sh 脚本,它功能是判断传入系统命令是否存在,脚本内容如下...[tt@ecs-centos-7 dev_test]$ 执行结果可以看出,把 command -v $1 中间结果重定向到 /dev/null 之后,就不会再输出top命令路径了 而且,修改之后脚本执行结果和原来结果是一样...丢弃标准错误输出 在shell脚本,删除一个文件时候,需要先判断文件是否存在,然后才能执行删除操作,否则删除时候会输出错误, 一般删除文件脚本内容如下: #!...在脚本,为了方便调试,经常会加一些日志打印逻辑,有时这种调试日志还比较多,脚本测试通过之后,这些调试日志可能就删除或者注释掉了 这里提供一个小技巧,既不用删除也不用注释掉日志,同时执行脚本时候还不会输出这些调试日志

1.2K20

Shell-alias在Shell脚本使用

概述 在shell开启alias 实际操作 概述 众所周知,shell脚本使用是非交互式方式,在非交互式模式下alias扩展功能默认是关闭,此时虽然可以定义alias别名,但是shell不会将alias...别名扩展成对应命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH均没有与alias别名同名命令,则shell会找不到指定命令。...---- 在shell开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...shopt是shell内置命令,可以控制shell功能选项开启和关闭,从而控制shell行为 常用命令: Command Desc shopt -s opt_name Enable (set) opt_name...项目启动中会依赖一些环境变量,所以双机启动脚本需要显式引入.bash_profile文件。 所以我们将 开启alias命令放在 .bash_profile

2.2K10

shell脚本介绍,shell脚本结构和执行方式,date命令用法,shell脚本变量简介

Shell Script,Shell脚本与Windows/Dos下批处理相似,也就是用各类命令预先放入到一个文件,方便一次性执行一个程序文件,主要是方便管理员进行设置或者管理用。...更明白地来说,shell script就像早期dos年代.bat,最简单功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell script更是提供了数组,循环,条件以及逻辑判断等重要功能...Shell脚本文件名称是以.sh为后缀,用于区分这是一个shell脚本shell注释符是井号“#”,和其他编程语言一样,注释那一行内容不会被解释器执行,但是要注意区别“#!”...shell脚本变量和其他编程语言中变量含义是一样,都是用来存储一个数据,然后使用变量名就可以进行调用了,shell脚本语法和其他脚本语法类似,都不需要使用分号作为语句结束。...变量类型: 运行shell时,会同时存在三种变量:   1) 局部变量 局部变量在脚本或命令定义,仅在当前shell实例中有效,其他shell启动程序不能访问局部变量。

2.5K60

shell函数和数组

20.16/20.17 shell函数 在shell函数关键字function是可以省略,而且和其他大部分编程语言一样,函数要声明在调用函数语句之前,因为代码都是从上至下执行。...20.18 shell数组 ? Shell数组合其他编程语言数组概念是一样,都是一堆数据集合,下标也是0开始,在日常编写shell脚本数组使用次数不像其他编程语言那么多。...数组声明格式: name=(1 2 3 4) 使用空格隔开数组元素 打印数组所有元素常用方式有两种: ? 打印数组某个元素,方括号里是下标: ? 打印数组长度: ?...给数组增加元素: ? 重新赋值数组某个元素: ? 删除数组某个元素,和删除整个数组: ? ?...我们可以使用seq命令给数组赋值一个范围数值,例如我赋值1到10这个范围数字: ? 截取数组示例: ? 第一个元素开始,截取3个元素,截取后原本数组元素不会有变动。

2.4K10

shell脚本 自定义随机抽取+不重复

/bin/bash #数组 qiu=(0 1 2 3 4 5 6 7 8 9 ) #数组总长度 qiu_chang=${#qiu[*]} let qiu_chang-- #重新计算数组,将原数组剔除.../xx.sh 5 来随机出5次" echo "当前数组:${qiu[*]}" exit fi #不能超过数组长度 if [ $1 -ge ${qiu_chang} ];then echo "不能超过数组长度..." exit fi #根据下标来删除数组元素 for i in `seq 0 $1` do shu=`echo $[RANDOM%qiu_chang]` #输出一下 echo ${qiu[...$shu]} shuzu let qiu_chang-- done 日期:2018/6/12 介绍:数组里随机抽一个,但不会重复,相比之下python比较好做出效果 效果图: 二.使用 适用...:centos6+ 语言:中文 注意:无 下载 wget https://raw.githubusercontent.com/goodboy23/shell/master/game/random_num.sh

3.1K10
领券