Bash 4.2增加了对负子串长度的支持:
http://tldp.org/LDP/abs/html/abs-guide.html#SUBSTREXTR01
示例37-12 字符串提取构造中的负参数
当“ length”参数为负数时,它用作“从端点偏移”参数。
例如,在Ubuntu上测试时,以下输出“ World”:
STR="Hello World!"
echo ${STR:6:-1}
但是在OS X(GNU bash,版本4.3.42(1)-发行版(x86_64-apple-darwin14.5.0))中,这种用法会产生以下错误:
-1: substring expression < 0
该OS X是特定的,还是在以后的bash更新中再次被禁用?有没有办法为OS X启用此功能?
1
tldp.org/LDP/abs/html/abs-guide.html#BASH2-从v2,v3和v4开始添加的内容。
—
汉奴
@Hannu是,该文件说,在4.2版本中加入的负面长度语义
—
布伦特浮士德
我也有同样的问题:您找到解决该问题的方法了吗?
—
罗曼·茹安
@romainjouin只需更改算法即可。即使在Bash 4.3.46版本中,此语法在OX X下也不起作用!投票赞成这个问题,以期引起更多关注。有人知道答案……
—
布伦特·浮士德·弗斯特
@Rubistro刚刚击中这个:| 解决它的一种方法是(在您的示例中)
—
donovanmuller
echo "Hello World" | rev | cut -c -5 | rev