欢迎各位兄弟 发布技术文章
这里的技术是共享的
在Linux Shell中,如果你想截取一个字符串,并去掉最后一个字符,可以使用${}
表达式结合字符串长度运算符#
来实现。以下是如何从变量的起始位置截取到倒数第二个字符的方法:
你可以这样做:
bash复制代码string="Hello, World!" length=${#string} substring=${string:0:length-1} echo $substring
这将输出:
这将输出:
复制代码Hello, World
Bash1# 假设你有一个变量SOME_STRING 2SOME_STRING="example_string" 3 4# 获取字符串长度 5STRING_LENGTH=${#SOME_STRING} 6 7# 截取从0(第一个字符)开始,长度为字符串总长度减1的子串 8SUBSTRING=${SOME_STRING:0:STRING_LENGTH-1} 9 10echo $SUBSTRING
执行上述代码后,$SUBSTRING
将包含example_strin
,即原字符串example_string
去掉了最后一个字符的结果。
这里是怎么工作的:
使用${#string}
来获取字符串string
的长度。
计算需要截取的长度,即原始长度减1。
使用${string:start:length}
语法来截取字符串。在这里,start
是起始位置(从0开始计数),length
是要截取的长度。
这样,你就可以根据字符串的长度来截取特定的子字符串了。
另一种简化的写法,如果你确定字符串不为空:
Bash1# 直接截取,假设字符串非空 2SUBSTRING="${SOME_STRING%?}" 3 4echo $SUBSTRING
上面的 %?
表达式会匹配并去除字符串结尾的一个字符。这种方式更加简洁,但请注意它在字符串为空时可能会出现问题。