【问题标题】:Fill in bash array with script arguments [duplicate]用脚本参数填充bash数组[重复]
【发布时间】:2019-04-09 08:26:30
【问题描述】:

我收到一个请求,在 bash 脚本中将 ip 列表作为数组传递。例如:

./myscript.sh 192.168.0.1,192.168.0.10,192.168.0.15......

上述参数中的 ip 应正确填充 bash 脚本中存在的数组。如果有人可以将它与 getopts 实用程序一起展示,我希望它。

仅供参考 - 我对 bash 还很陌生,所以请理解......

【问题讨论】:

  • 不清楚您真正要问的是什么。请提供更多详细信息。就目前而言,"$@" 就足够了。
  • mywiki.wooledge.org/BashFAQ/050 可能会有所帮助。

标签: linux bash scripting getopts


【解决方案1】:

首先,您需要从输入中删除逗号,sed 会处理这个问题。 然后,您可以只使用 var=() 语法创建一个数组。

#! /bin/bash

no_commas=`echo $1 | sed -e 's/,/ /g'`
ip_array=($no_commas)

for addr in ${ip_array[@]}; do
    echo "Address: $addr"
done

这给了我:

$./bash_array.sh 192.168.1.33,192.168.2.3
Address: 192.168.1.33
Address: 192.168.2.3

【讨论】:

猜你喜欢
  • 2013-04-02
  • 2010-10-24
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多