【问题标题】:Tokenize string - wrong result标记字符串 - 错误的结果
【发布时间】:2020-01-03 21:53:27
【问题描述】:

字符串标记错误

用于从命令输出中提取应用程序版本

#!/bin/bash
# GNU bash, version 4.3.46

string='Version: 19.08.19-14:25'
IFS=" -:" set -- $string
echo $2

我预计$2 将具有19.08.19 的值。但结果是19.08.19 14 25

【问题讨论】:

    标签: bash busybox ifs positional-parameter


    【解决方案1】:

    分词发生在 IFS 的值改变之前(参见man bash 中的简单命令扩展)。您需要在单独的语句中设置 IFS。

    IFS=" -:"
    set -- $string
    

    如果脚本执行其他操作,请不要忘记将其设置回来。

    【讨论】:

    • 或者IFS=" -:"; set -- $string
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    相关资源
    最近更新 更多