在获取参数接受配置文件后恢复unix命令行参数

时间:2014-09-30 15:48:13

标签: shell unix

平台是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。有没有办法可以保存/恢复这些原始参数,或者在采购第二个配置文件后能够通过其他方法引用它们?

1 个答案:

答案 0 :(得分:-1)

某处你需要存储参数。使用数组:

set -A params "$@"

使用"$@"代替$*非常重要 - 前者将使用空格保留任何参数。

恢复位置参数:

set -- "${params[@]}"
./script "$@"