【问题标题】:How to read command line argument in shell sript如何在 shell 脚本中读取命令行参数
【发布时间】:2015-06-11 07:07:37
【问题描述】:

我需要读取传递为的命令行参数 脚本名 -c "30,31,32,33,34,35"

并将其转换为

myArray=( 30 31 32 )

【问题讨论】:

  • 该示例中的 33、34 和 35 发生了什么? :-)
  • 参数中31,32,33,34,35之间的任何数字都可以作为-c "30,31,32,33,34,35"传递
  • 为什么在命令行给出的示例中是 33、34 和 35 而在数组中却省略了?这令人困惑。

标签: shell


【解决方案1】:

尝试以下方法:

while getopts c: option
do
    case $option in
       c) data="$OPTARG"
          ;;
    esac
done

oldIFS="$IFS"
IFS=','
myArray=($data)
IFS="$oldIFS"

echo ${myArray[@]}

getopts后面的c:表示我们有一个选项-c:表示后面是一个参数,使用$OPTARG检索。

IFS 如果我将字段间分隔符重置为逗号以创建数组。

【讨论】:

    【解决方案2】:

    您可以使用 getopts 命令读取参数。 使用方法请参考链接 example of how to use getopts in bash

    一旦你有了变量,你就可以轻松地创建一个数组 这个链接可能有用。 Arrays in unix shell?

    【讨论】:

      猜你喜欢
      • 2021-07-20
      • 1970-01-01
      • 2017-03-16
      • 2013-03-03
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      • 2010-09-07
      相关资源
      最近更新 更多