【问题标题】:Bash: How to check if the last three string characters equals '***'Bash:如何检查最后三个字符串字符是否等于'***'
【发布时间】:2017-05-24 06:26:18
【问题描述】:

我知道如何为一个角色做到这一点:

[ "${filename: -1}" == "*" ]

还有可能做更多吗?

【问题讨论】:

  • [[ $filename = *'***' ]] 将完成这项工作。

标签: string bash shell scripting


【解决方案1】:

你为什么停在-1值?

manual pages of bash给出答案:

${parameter:offset}
${parameter:offset:length}

如果 offset 的计算结果为 小于零,则该值用作 从参数的值的结尾开始的字符偏移量。如果 length 计算为小于零的数字,它被解释为 从参数值的末尾偏移的字符而不是 比多个字符,扩展是字符 在offset 和那个结果之间。请注意,否定的offset 必须是 与冒号相隔至少一个空格以避免混淆 带有':-'扩展。

因此

[ "${filename: -3}" == "***" ]

【讨论】:

    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 2022-10-13
    • 2016-12-21
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多