【问题标题】:variable is returning two values, how to store them in different variable?变量返回两个值,如何将它们存储在不同的变量中?
【发布时间】:2013-08-02 05:45:12
【问题描述】:

我的变量返回两个值,我必须在 shell 脚本中同时传递这些值。

echo $var

输出:

23514
abcd

现在我必须运行一个以 23514 和 'abcd' 作为参数的 shell 脚本
sh sample.sh --id var1 --value var2

【问题讨论】:

  • 一个变量不能包含两个值。它要么是一个数组,要么(更可能在这里)该值包含换行符
  • 如果它包含一个换行符,它会变成一个空格,除非你在回显它时引用变量。

标签: linux bash shell grep


【解决方案1】:

使用数组:

vars=($var)
sh sample.sh --id ${vars[0]} --value ${vars[1]}

【讨论】:

  • echo ${vars[0]} 返回 null 并且 echo ${vars[1]} 返回 23514 abcd
  • var=$(sh new.sh | grep -E "Id|type"|grep -Eo '[0-9]+|abcd|efgh')
  • 您是否在脚本中修改了$IFS
  • 如何将 grep 的多个输出存储在不同的变量中??
  • 这就是这样做的方法。有些东西你没有展示,因为它对我有用。
【解决方案2】:

要么使用数组,如Barmar has mentioned

或将read 与此处字符串一起使用:

read var1 var2 <<< $var

【讨论】:

    【解决方案3】:
    var1=`echo $var | awk '{print $1}'`
    var2=`echo $var | awk '{print $2}'`
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 2014-02-22
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2013-02-07
      相关资源
      最近更新 更多