【发布时间】:2012-10-21 10:46:10
【问题描述】:
我需要在脚本中处理超过 10 个参数。 我在下面的第 9 个参数之后声明和分配。
param10=${10}
param11=${11}
param12=${12}
它在 linux 中运行良好,但在 solaris 中不行。我收到bad substitution
谁能帮我阅读超过 10 个的参数,这应该适用于 solaris 和 linux。
【问题讨论】:
我需要在脚本中处理超过 10 个参数。 我在下面的第 9 个参数之后声明和分配。
param10=${10}
param11=${11}
param12=${12}
它在 linux 中运行良好,但在 solaris 中不行。我收到bad substitution
谁能帮我阅读超过 10 个的参数,这应该适用于 solaris 和 linux。
【问题讨论】:
可能已经过时了,但根据this link:
Bourne shell 仅支持位置参数 $0 到 $9。 为了访问参数 10 或更大,您必须使用“shift” 命令。 Shift 会将 $2 移动到 $1,将 $3 移动到 $2,等等。($0 是 被调用的命令并且永远不会改变)。此外,您可以移动更多 一次不止一个位置。例如,您可以使用 $1 到 $9, 然后发出命令“shift 9”并处理变量 10 到 19 再次使用变量 $1 到 $9。
【讨论】: