我追求一个纯粹的 bash 解决方案来“slugify”一个变量,这不像我的那么难看。
slugify:小写,缩短为 63 字节,除 0-9 和 az 以外的所有内容都替换为 -。没有前导/尾随 -。结果是一个适合在 URL 主机名和域名中使用的字符串。输入很可能是一系列带有不需要字符的单词,例如:
'Effrafax_mUKwT'uP7(Garkbit<\1}@NJ"RJ"Hactar*S;-H%x.?oLazlarl(=Zss@c9?qick.:?BZarquonelW{x>g@'k'
其中一个蛞蝓看起来像:'effrafax-mukwt-up7-garkbit-1-njrjhactar-shx-olazlarl-zss-c9-q'
slugify () {
next=${1//+([^A-Za-z0-9])/-}
next=${next:0:63}
next=${next,,}
next=${next#-}
next=${next%-}
echo $next
}
另外为什么不${next//^-|-$}
去掉前缀和后缀'-'
?其他建议?