Bash-如何获取位置参数的最后一个字符?

问题描述

我正在尝试读取保存在位置参数$ 1中的字符串的最后一个字符。到目前为止,我只知道如何对命名变量执行此操作,例如

echo "${str: -1}"

有人可以建议我如何花1美元做这件事。以为这可以工作,但是没有。谢谢。

echo "${\$1: -1}"

解决方法

琐碎

echo "${1: -1}"

带编号的参数使用与其他任何变量完全相同的语法。

参数扩展${str: -1}是Bash扩展;如果需要POSIX sh兼容性,则需要两个步骤。

_=${1%?}
echo "${1#"$_"}"

第一个扩展名返回删除了最后一个字符的字符串;然后,我们从前缀中删除此字符串,只产生我们之前砍掉的字符。

,

也有这种语法

echo ${1:(-1)}