如何在Bash脚本中用for循环简化多环境变量导出代码
简化重复export语句的Bash循环实现
完全可以用for循环来简化这段重复的export代码,下面是两种实用的写法:
方法一:使用间接参数扩展(推荐)
这种写法更直观且避免了eval的潜在风险:
for i in {1..8}; do export "SCA_include$i=${!i+1}" done
${!i+1}是Bash的间接参数扩展语法:当i为1时,i+1等于2,${!2}就等价于直接写$2,以此类推到${!9}- 动态拼接变量名
SCA_include$i,一次性完成导出操作
方法二:使用eval(兼容旧版Bash)
如果需要兼容一些不支持间接扩展的老版本Bash,可以用eval实现:
for i in {1..8}; do eval "export SCA_include$i=\$$((i+1))" done
$((i+1))计算出对应的脚本参数序号(1→2,8→9)\$$((i+1))通过eval最终展开为对应的参数值(比如$2),再执行export命令
内容的提问来源于stack exchange,提问作者Nikhil
相关产品推荐
相关产品推荐

