平台是AIX 7.1和HP-UX Itanium 11.31,Korn shell。我们的大多数脚本都在主配置文件中提供,以设置所需的环境变量。新要求是从主要配置文件中选择性地获取另一个配置文件。第二个配置文件需要接受参数。不幸的是,当我们获取第二个配置文件时,存储原始命令行参数的系统变量($ *)会被覆盖。例如:
无需第二个个人资料即可拨打电话:./script my original parms
主要配置文件不会获取第二个配置文件。
$*
包含my original parms
。我们在这里很好。
使用第二个个人资料来源致电:./script my second original parms
主要配置文件来源第二个配置文件:. ./secondProfile second profile parms
$*
包含second profile parms
。哦,哦。
因此,我们在主脚本调用的第二个版本中有效地丢失了my second original parms
。有没有办法可以保存/恢复这些原始参数,或者在采购第二个配置文件后能够通过其他方法引用它们?
答案 0 :(得分:-1)
某处你需要存储参数。使用数组:
set -A params "$@"
使用"$@"
代替$*
非常重要 - 前者将使用空格保留任何参数。
恢复位置参数:
set -- "${params[@]}"
./script "$@"