在命令行使用
如果有一个文件在某个目录下: tool/util/example.py
如果要获取它的不带扩展名的文件名:
file=tool/util/example.py
basename=`basename $file`
bbname=${basename%%.*}
echo $bbname
# tool/util/example.py 的输出结果:
example
这个办法对绝对、相对路径都有用
打包成一个 shell 程序来使用
打包成程序使用比较方便,特别是可以方便地用在其他 shell 脚本当中
把下面的代码保存在 bbname.sh 中:
file=$1
basename=`basename $file`
bbname=${basename%%.*}
echo $bbname
然后:
ln -s `pwd`/bbname.sh /usr/local/bin/bbname
如果没有写入/usr/local/bin 的权限,软链接到其他环境变量的目录下也可
在循环中使用非常方便,例如:
for file in `ls data/`;do
basename=`bbname $file`
Your command > newdir/$basename.out
done