在我的脚本中,我有未知数量的包含角度的变量,我想将它们转换为向量。我创建了变量名称,使每个“参数”的角度具有以下形式:
{参数}_角度_{纬度/纬度}
因此,每个参数都有一个“lat”和“perp”角度变量。
所以我想做的是找到包含“_angle_lat”的所有变量,对这些变量的值进行一些计算,并创建一个包含“参数”名称的新变量。
例如:
export M0_angle_lat=4
export M1_angle_lat=70
export M1_angle_perp=8
export M0_angle_perp=90
# Now I want to use these values to calculate vectors
for varname in *_angle_lat
do
# at first iteration it will get for example "varname=M0_angle_lat" in which case
# I want it to do:
M0_X=$(( $M0_angle_lat * $M0_angle_perp ))
# The second iteration in case would then give "varname=M1_angle_lat" in which case
# I want it to do:
M1_X=$(( $M1_angle_lat * $M1_angle_perp ))
done
我希望我的目标很清楚。谢谢您的帮助!
你能做的就是使用env
获取所有变量的列表,然后迭代它们:
while IFS='=' read -r name value ; do
if [[ $name == *'_angle_lat'* ]]; then
echo "$name" ${!name}
prefix=${name%%_*} # delete longest match from back (everything after first _)
angle_lat="${prefix}_angle_lat"
angle_perp="${prefix}_angle_perp"
result="${prefix}_X"
declare "${result}=$(( ${!angle_lat} * ${!angle_perp} ))"
fi
done < <(env)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)