如何删除 ksh 中字符串变量的最后一个字符?

发布于 2025-01-03 11:03:49 字数 91 浏览 1 评论 0原文

我有一个字符串变量,我想删除它的最后一个字符。

例如:从“testing1”传递到“testing”。

我如何在 KSH 中执行此操作?

I've a string variable and I want to remove the last character of it.

For example: pass from "testing1" to "testing".

How can I do this in KSH?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泡沫很甜 2025-01-10 11:03:49
var="testing1"
print ${var%?}

输出

testing

${var%?} 是参数编辑功能。 '%' 表示从右侧删除并期望遵循以下模式。在您的示例中,该模式可能只是字符“1”(不带引号)。我正在使用通配符“?”这样任何单个字符都将被删除。您可以使用“*”字符来指示所有字符,但通常您希望将其与一些前面的字符“捆绑”,例如 echo ${var%i*} 会给您<结果是代码>测试。此 AND '#' 和 '##' 也有从字符串左侧开始的 '%%' 变体。

我希望这有帮助。

var="testing1"
print ${var%?}

output

testing

The ${var%?} is a parameter editing feature. The '%' says remove from the right side and expects a pattern following. The pattern could be in your example case just the char '1' (without the quotes). I am using the wild-card char '?' so that any single character will be removed. You can use the '*' char to indicate all chars, but typically you want to 'bundle' that with some preceding chars, with your example echo ${var%i*} would give you just test as a result. There are also '%%' variants on this AND '#' and '##' that start from the left side of the string.

I hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文