从尾部提取Shell子串

问题描述 投票:0回答:1

我有这个 shell 变量,它给我一个字符串,后跟 HTTP 返回代码。

# echo $response
good200

字符串的值可以是

good
bad
,最后 3 个字符是 HTTP 返回码。 我想提取子字符串和返回码,但 shell 没有裁剪字符串。

当我尝试使用负位置编号修饰符回显

$response
变量时,该值只是 not 被修剪。

# string=${response:3}  # 3 IS OK AND THE STRING IS TRIMMED
# echo $string
d200

# httpcode=${response:-1:3}  # -1 DOES NOTHING
# echo $httpcode
good200

如何正确捕获实际的字符串和HTTP代码?

string shell curl substring extract
1个回答
0
投票

负偏移量并非在所有 bash 版本中都可靠可用。如果要打印最后三个字符,请使用算术扩展计算起始偏移量。

echo "${s:$(( ${#s} -3 )):3}"
© www.soinside.com 2019 - 2024. All rights reserved.