【问题标题】:Representing environment variable 10表示环境变量 10
【发布时间】:2012-07-24 08:34:47
【问题描述】:

我将参数从 Java 程序传递到 shell 脚本,为此我在 shell 脚本中使用环境变量来接收参数。我可以使用 $9 获取参数直到没有 9。但是如果我得到第 10 个参数,我会得到一个错误。我正在使用 ${10} 来获取第 10 个参数的输入。我是不是在哪里出错了。

【问题讨论】:

  • 您收到的确切错误消息是什么?

标签: shell


【解决方案1】:

我不确定${10} 格式,尽管它看起来很合理。但是,您可以使用shift 内置函数来重用$1。像这样。

#!/bin/sh

a=$1
shift
b=$1

echo "$a:$b"

你可以像这样运行它。

noufal@sanitarium% ~/foo.sh Hello Goodbye
Hello:Goodbye

【讨论】:

  • 感谢您的回复。但是我将大约 15 个参数传递给 shell,因此 $1 可能代表我发送的第一个参数 rite
  • 是的,但顺序是相关的,不是吗?因此,您将能够放置一个获取值的块,然后在处理开始之前为所有 15 个值重复移动。
  • 如果你有重要的参数传递,你应该使用getopts。
猜你喜欢
  • 2016-04-02
  • 2021-10-15
  • 2018-06-08
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 2016-04-17
相关资源
最近更新 更多