在Bash脚本中,要实现文件名不硬编码的切割,可以使用以下几种方法:
#!/bin/bash
filename=$1
basename=$(basename "$filename")
extension="${basename##*.}"
filename_no_extension="${basename%.*}"
echo "文件名:$basename"
echo "扩展名:$extension"
echo "没有扩展名的文件名:$filename_no_extension"
执行脚本时,将文件名作为参数传递给脚本:
$ ./script.sh example.txt
输出:
文件名:example.txt
扩展名:txt
没有扩展名的文件名:example
#!/bin/bash
for filename in *.txt; do
basename=$(basename "$filename")
extension="${basename##*.}"
filename_no_extension="${basename%.*}"
echo "文件名:$basename"
echo "扩展名:$extension"
echo "没有扩展名的文件名:$filename_no_extension"
done
这个例子会遍历当前目录下的所有.txt文件,并输出文件名、扩展名和没有扩展名的文件名。
#!/bin/bash
echo "请输入文件名:"
read filename
basename=$(basename "$filename")
extension="${basename##*.}"
filename_no_extension="${basename%.*}"
echo "文件名:$basename"
echo "扩展名:$extension"
echo "没有扩展名的文件名:$filename_no_extension"
脚本会提示用户输入文件名,并输出文件名、扩展名和没有扩展名的文件名。
上一篇:Bash脚本启动新终端