【问题标题】:Unix script print arguments [duplicate]Unix脚本打印参数[重复]
【发布时间】:2014-06-28 19:18:43
【问题描述】:

我想打印控制台中给出的一些参数
但我想用整数给出的数字打印参数

declare -i I=2
declare -i I=4

我想打印参数 2 和 4 我该怎么做 不使用以下 if 语句

if [ $I -eq 2 ]; then
echo $2
fi 


我正在寻找的是这样的想法
echo $($I) #first access $I, which is 4 and
# then print $4, which is the 4th argument

【问题讨论】:

  • var -i I=2 在 Unix shell 脚本中有效吗?
  • 对不起的意思是declare -i I=2
  • 使用间接扩展:echo "${!I}"
  • 一些研究会有所帮助。这个问题在 Stack Overflow 上已经被问过(并回答了)很多次。

标签: bash unix arguments


【解决方案1】:

您似乎在寻找variable indirection。像这样使用:

func() {
    p=4
    echo "${!p}"
}

测试:

func aa bb cc dd ee
dd

【讨论】:

    【解决方案2】:

    要查看每个参数分配给您的内容,您可以使用此循环。

    for n in $(seq 1 $#)
    do
      echo $n ${!n}
    done
    

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 2014-10-26
      • 2012-01-15
      • 1970-01-01
      • 2010-10-24
      • 2023-03-12
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多