Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash-如何获取位置参数的最后一个字符?_Bash_Positional Parameter - Fatal编程技术网

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

Bash-如何获取位置参数的最后一个字符?,bash,positional-parameter,Bash,Positional Parameter,我试图读取保存在位置参数$1中的字符串的最后一个字符。到目前为止,我只知道如何对命名变量执行此操作,例如 echo "${str: -1}" 谁能给我一美元怎么做。我原以为这行得通,但事实并非如此。多谢各位 echo "${\$1: -1}" 琐碎 echo "${1: -1}" 编号的参数使用与任何其他变量完全相同的语法 参数扩展${str:-1}是Bash扩展;如果需要POSIX sh兼容性,则需要两个步骤 _=${1%?}

我试图读取保存在位置参数$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:我建议开始一个新问题。