首页 > 解决方案 > 如何将环境变量放入Array?

问题描述

DIR1, DIR2, .... DIRN 来自包含一些目录路径的环境变量。例子

export DIR1="/users/abcd"
export DIR2="/users/abcd/xyz"
.
.
.

我怎么知道环境变量中有多少 DIR_ 并将所有这些放在以下数组中

arr=(DIR1 DIR2 ... . . DIRN)
i=0
while [ $i -lt ${#arr[@]} ] 
do
      cd ${arr[$i]}
      i=`expr $i + 1`
done

标签: linuxbashshellshksh

解决方案


对于环境变量的值中可能包含换行符的情况,您可以使用此脚本,该脚本使用printenv和的 gnu 版本awk

mapfile -t arr < <(printenv -0 | awk -v RS='\0' -F= '/^DIR/{print $1}')

然后检查您的数组内容:

declare -p arr

推荐阅读