如何用bash中的另一个字符替换字符串的最后一个字符?

use*_*885 9 string bash shell

我正在使用bash中的一个小代码,但我遇到了一个小问题.我有一个字符串,我想替换该字符串的最后一个字母s.

例如:我采取一切,在结尾的文件c,并替换最后cs.

for file in *.c; do
   # replace c with s  
   echo $file
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

Hen*_*eld 14

for file in *.c; do 
   echo "${file%?}s"
done
Run Code Online (Sandbox Code Playgroud)

在参数替换中,$ {VAR%PAT}将从变量VAR中删除与PAT匹配的最后一个字符.外壳的图案*?可作为通配符.

上面删除了最后一个字符,并附加"s".