Bash-如何获取位置参数的最后一个字符?
我试图读取保存在位置参数$1中的字符串的最后一个字符。到目前为止,我只知道如何对命名变量执行此操作,例如Bash-如何获取位置参数的最后一个字符?,bash,positional-parameter,Bash,Positional Parameter,我试图读取保存在位置参数$1中的字符串的最后一个字符。到目前为止,我只知道如何对命名变量执行此操作,例如 echo "${str: -1}" 谁能给我一美元怎么做。我原以为这行得通,但事实并非如此。多谢各位 echo "${\$1: -1}" 琐碎 echo "${1: -1}" 编号的参数使用与任何其他变量完全相同的语法 参数扩展${str:-1}是Bash扩展;如果需要POSIX sh兼容性,则需要两个步骤 _=${1%?}
echo "${str: -1}"
谁能给我一美元怎么做。我原以为这行得通,但事实并非如此。多谢各位
echo "${\$1: -1}"
琐碎
echo "${1: -1}"
编号的参数使用与任何其他变量完全相同的语法
参数扩展${str:-1}是Bash扩展;如果需要POSIX sh兼容性,则需要两个步骤
_=${1%?}
echo "${1#"$_"}"
第一个扩展返回删除最后一个字符的字符串;然后,我们从前缀中删除这个字符串,只生成我们之前截断的字符。很简单
echo "${1: -1}"
编号的参数使用与任何其他变量完全相同的语法
参数扩展${str:-1}是Bash扩展;如果需要POSIX sh兼容性,则需要两个步骤
_=${1%?}
echo "${1#"$_"}"
第一个扩展返回删除最后一个字符的字符串;然后,我们从前缀中删除这个字符串,只生成我们之前截断的字符。还有这个语法
echo ${1:(-1)}
还有这个语法
echo ${1:(-1)}
您可以使用${1:-1}谢谢,如果您知道并且不介意的话,这只是一个额外的问题-它在单引号中的外观如何,例如作为awk命令?这不起作用->awk-v PARAM_NAME=clientid'{if$1==\PARAM_NAME\:&&${2:-1}=,{print$2;}}}}@Jozef:我建议开始一个新问题。你可以使用${1:-1}谢谢,如果你知道也不介意的话,这只是一个额外的问题-它在单引号中应该是什么样子,例如作为awk命令?这不起作用->awk-v PARAM_NAME=clientid'{if$1==\PARAM_NAME\:&&${2:-1}==,{print$2;}}}'@Jozef:我建议开始一个新问题。