截断变量中的短日期名称

截断变量中的短日期名称

我有一个带有短日期名称的变量,它可以按任何顺序排列,包含更少或更多的星期几,总是用逗号分隔,如下所示:

days='Tue,Wed,Thu,Fri,Sat,Sun'

我怎样才能将每个字母的最后一个字母剪切成这样:

days='Tu,We,Th,Fr,Sa,Su'

答案1

days="${days},"           # adds trailing comma
days="${days//?,/,}"      # changes every character+comma to sole comma
days="${days%,}"          # removes trailing comma

或者

days="${days//?,/,}"      # changes every character+comma to sole comma
days="${days%?}"          # removes last character

我在 POSIX 文档中找不到该语法${parameter/pattern/string};我猜它可能有效也可能无效,这取决于你的 shell 功能有多丰富。在我的测试中,少数系统busybox支持sh该语法。

相关内容