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

aF.*_*aF. 5 string variables ksh var

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

例如:从"testing1"传递到"testing".

我怎样才能在KSH中做到这一点?

she*_*ter 13

var="testing1"
print ${var%?}
Run Code Online (Sandbox Code Playgroud)

产量

testing
Run Code Online (Sandbox Code Playgroud)

${var%?}是一个参数编辑功能.'%'表示从右侧移除并期望跟随模式.模式可能在您的示例情况下只是char'1'(没有引号).我正在使用外卡char'?' 这样就可以删除任何单个字符.您可以使用'*'字符来表示所有字符,但通常您希望将其与某些前面的字符"捆绑",您的示例echo ${var%i*}将为您test提供结果.这个AND'#'和'##'上还有'%%'变体,从字符串的左侧开始.

我希望这有帮助.