如何在shell脚本中获取文件的扩展名

时间:2010-02-28 19:45:26

标签: linux shell

我正在尝试在shell脚本中获取文件的文件扩展名。但没有任何运气。

我使用的命令是

file_ext=${filename##*.}

file_ext = $filename |awk -F . '{if (NF>1) {print $NF}}'

但是这两个命令都无法将值放在变量file_ext中。但是当我尝试

echo $filename |awk -F . '{if (NF>1) {print $NF}}'

它给了我想要的结果。我是shell脚本的新手。请描述发生的情况。我该怎么做呢?

感谢。

3 个答案:

答案 0 :(得分:22)

获取文件扩展名,只需使用shell

$ filename="myfile.ext"
$ echo ${filename##*.}
ext
$ file_ext=${filename##*.} #put to variable
$ echo ${file_ext}
ext

答案 1 :(得分:13)

太空伤害。

无论如何你应该这样做:

file_ext=$(echo $filename |awk -F . '{if (NF>1) {print $NF}}')

这将在$ file_ext中存储命令的输出。

答案 2 :(得分:3)

声明变量时必须小心。

variable1="string"    # assign a string value
variable3=`command`   # assign output from command
variable2=$(command)  # assign output from command

请注意,不能在变量后面添加空格,因为它会被解释为正常命令。