Shell Scrpt动态变量名

本文介绍如何在Linux环境中利用bash shell script动态生成变量名来监控HCP流程中7个步骤的subject完成状态。由于采用了并行运行的方式,通过这种方式可以有效地组织和检查每个步骤的进度。

需要检查跑的数据跑好了没有,HCP 的7个步骤,看看subject分别完成到什么程度了,因为全开的并行,需要整理一下,所以需要用到动态变量名

  #1.check-1:PreFreeSurfer
  for out_file in $(ls -lt | awk '$5==0 && /PreFreeSurfer/{print $9}' | sed 's/.sh.e/.sh.o/g')
  do
      subject=$(cat ${out_file} | grep -Eo "Subject:.*" |awk -F ':' '{print $2}' | sed 's/ //g') 
      state=$(cat ${out_file} | grep -Eo "Completed!")
      #下面就是动态给变量赋值了,使用eval,注意输出的时候也要加eval,变量名引用的$符号拼接在前面,echo 出变量名之后,eval就是变量的值了!
     if [ -n "$state" ];then 
           eval p_${subject}='$state'
      else
           #字符串先赋值给变量名,再用eval将这个变量代表的字符串赋值给动态变量
           #'字符串'(用单引号括起来)
           #'$变量名'(也用单引号括起来)
           state='running'
           eval p_${subject}='$state'
      fi
      eval echo '$'p_${subject}
  done  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值