Bash ${@:-1}如何展开到最后一个参数
我知道Bash ${@:-1}如何展开到最后一个参数,bash,Bash,我知道${para:[start]:[length]}和$符号,但我无法找出${var:-1}如何计算到最后一个参数。将其视为length-1,它将在$var中的最后一个字符中解析。这同样适用于${var:(-2)},…: var='hello' printf "%s\n" "${var:(-1)}" # o printf "%s\n" "${var:(-2)}" # lo printf "%s\n" "${var:(-3)}" # llo 从bash(1)手册页: 如果参数为@。。。抵消 -
${para:[start]:[length]}
和$
符号,但我无法找出${var:-1}
如何计算到最后一个参数。将其视为length-1
,它将在$var
中的最后一个字符中解析。这同样适用于${var:(-2)}
,…:
var='hello'
printf "%s\n" "${var:(-1)}" # o
printf "%s\n" "${var:(-2)}" # lo
printf "%s\n" "${var:(-3)}" # llo
从bash(1)
手册页:
如果参数为@。。。抵消
-1计算为最后一个位置参数
您也可以简单地使用空格来区分
${var:-1}
和${var:-1}
@chepner我知道,但正如您在下面看到的,这很容易被误读为${var:-1}
。最好作为旁注明确说明,这不应与第页中解释的{para:-1}
相混淆。注意@andlrc的答案中使用的()
,并查看下面的注释。。