这里面其实是有2个关键点
首先要获取到某个目录下的所有文件名称
然后再对名称进行截取
具体代码如下
#!/bin/bash cd ~ for file in $(ls *) do echo $file echo ${file%-*} done
执行结果如下图
总结起来就是
*是忽略掉字符的意思
#是截取字符串的右边字符,所以*要在截取的字符串的左边,即忽略掉该字符左边的字符,从而截取到右边的字符
%是截取字符串的左边字符,所以*要在截取的字符串的右边,即忽略掉该字符右边的字符,从而截取到左边的字符
例如示例代码中 ${file%-*} 即是用“-”去截取字符串file,获取到“-”左边的字符串
关于shell截取字符串的详细解释,请看这里