问题:
我运行shell脚本在Ruby脚本子,行书后,我想有一个选项来检查外壳的所有环境变量,包括数组变量。
到目前为止,我想出了:
set | awk -F= 'BEGIN {v=0;}
/^[a-zA-Z_][a-zA-Z0-9_]*=/ {v=1;}
v==1 && $2~/^['\''\$]/ {v=2;}
v==1 && $2~/^\(/ {v=3;}
v==2 && /'\''$/ && !/'\'\''$/ {v=1;}
v==3 && /\)$/ {v=1;}
v {print;}
v==1 {v=0;}
'
这挺好的只显示了变量,包括数组,多行字符串滤除功能。
但是,这并不使用相同的格式,所有的时间,特别是数组变量在bash和ZSH不同的表示。
这是我目前的执行: https://github.com/mpapis/tf/blob/master/lib/tf/environment.rb
题:
有一个简单的方法来显示所有将在bash和ZSH /可能还有其他炮弹坚持工作的变量。