有没有办法在bash中引用位置参数?

时间:2016-08-24 19:58:27

标签: bash

我想让我的bash脚本更容易阅读。 为此,我想引用位置参数来命名它们。

我试过

declare -n time="\$1"

但它没有用。我收到了错误消息,

declare: $1: syntax error: operand expected (error token is "$1")

有解决方案或建议的人请告诉我。

1 个答案:

答案 0 :(得分:3)

Namerefs可以方便地间接修改变量。但是,位置参数基本上是只读的,因为您无法直接分配给它们。 (您使用set作为整体更新位置参数,而不是单独更新任何位置参数。)

如果您只想获得位置参数的更好名称,只需使用常规参数分配。

time=$1

(形式上,shell中有三种不同的参数:

  1. 位置参数:$1$2
  2. 特殊参数:$?$*等(单字符,非字母数字名称)
  3. 变量:带有名称的有效标识符的“常规”参数
  4. declare -n仅用于创建对变量的引用。 )