当前位置:  开发笔记 > 编程语言 > 正文

bash:为什么$ {@: - 1}的值与$ {@:-1}不同?

如何解决《bash:为什么${@:-1}的值与${@:-1}不同?》经验,为你挑选了1个好方法。

为什么在:和之间添加空格会-1改变下面显示的行为?

(ins)$ set a b c d
(ins)$ echo ${@:-1}
a b c d
(ins)$ echo ${@: -1}
d
(ins)$

同样的行为也会影响$*.

我跑GNU bash, version 4.4.5(1)-release (x86_64-unknown-linux-gnu).



1> heemayl..:

为避免参数扩展模式的模糊:

${parameter:-word}

这意味着替换wordif参数的扩展是unset或null; 否则参数的扩展被替换.

因此,对于切片操作,使用空格或括号:

$ set a b c d

$ echo "${@: -1}"
d

$ echo "${@:(-1)}"
d

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有