如何从 space 分隔数据流中将值提取到单独的变量中

how to extract values into separate variables from a stream of space separated data

从命令行读取输入后,我需要将输入分成不同的值。我正在使用 OPTARGS 方法和 while 循环阅读它。 所以我的输入会像 "hostanme1 hostname2 hostnamen"

我如何通过这个循环来提取单独变量中的主机名。

    while getopts S:H: opt
do
   case ${opt} in
      S)
        SCHNAME=${OPTARG}
      ;;
      H)
        HOST=${OPTARG}
      ;;
      *)
        DisplayUsage
        exit 1
      ;;
   esac
done

这将是 运行 就像 ./filename.ksh -S schema -H "Host1 host2 host3 host4

关键是在字符串周围添加“(”和“)”,项目之间有空格以构成对象数组。

  H)
    HOSTS=(${OPTARG})
  ;;

for host in "${HOSTS[@]}"
do
  echo "$host"
done