我有一个带有短日期名称的变量,它可以按任何顺序排列,包含更少或更多的星期几,总是用逗号分隔,如下所示:
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
该语法。