Bash:如何检查最后三个字符串字符是否等于' ***'

时间:2017-01-09 21:37:13

标签: string bash shell scripting

我知道如何为一个角色做这件事:

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

是否有可能做更多?

1 个答案:

答案 0 :(得分:0)

为什么你停在-1值?

manual pages of bash给出答案:

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

如果 offset 评估为小于零,则该值将用作   参数值的字符偏移量。如果   length求值为小于零的数字,它被解释为   从参数值的末尾开始的字符偏移   比一些字符,扩展是字符   在offset和那个结果之间。请注意,必须为负offset   与结肠分开至少一个空间以避免混淆   用': - '扩展。

因此

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