你可能需要一些时间来提取文件名和扩展名不同的变量来完成在bash shell编程任务。本文将帮助你从一个完整的文件名或路径名中提取和文件扩展名。 下面是一步一步的详细信息:
1.获取文件名不带路径:
首先要从输入文件名完整的文件路径。例如,如果文件名输入是/etc/apache2/apache2.conf中则只能提取完整的文件名apcahe2.conf。
#!/bin/bash
fullfilename="/etc/apache2/apache2.conf"
filename=$(basename "$fullfilename")
echo $filename
2.文件名不带扩展:
现在,无需提取从中提取fullfilename扩展文件名不带路径如上。
#!/bin/bash
fullfilename="/etc/apache2/apache2.conf"
filename=$(basename "$fullfilename")
fname="${filename%.*}"
echo $fname
3.文件扩展名 :
现在从提取fullfilename提取文件的扩展名不带路径。
#!/bin/bash
fullfilename="/etc/apache2/apache2.conf"
filename=$(basename "$fullfilename")
ext="${filename##*.}"
echo $ext
4.测试:
最后测试都在一个单一的shell脚本。创建使用以下内容的新的脚本文件。文件名会命令行参数执行脚本中传递。
#!/bin/bash
fullfilename=$1
filename=$(basename "$fullfilename")
fname="${filename%.*}"
ext="${filename##*.}"
echo "Input File: $fullfilename"
echo "Filename without Path: $filename"
echo "Filename without Extension: $fname"
echo "File Extension without Name: $ext"
让我们执行该脚本文件名作为命令行参数。
$ ./script.sh /etc/apache2/apache2.conf
Input File: /etc/apache2/apache2.conf
Filename without Path: apache2.conf
Filename without Extension: apache2
File Extension without Name: conf