这个脚本会遍历当前目录下所有以 .txt 结尾的文件,并将它们的后缀名修改为 .md。
for file in *.txt; do
mv -- "$file" "${file%.txt}.md"
done
${file%.txt} 是 Shell 中的参数替换语法,它表示从变量 $file 的末尾匹配删除 .txt 字符串。这样,${file%.txt} 就是将变量 $file 中末尾的 .txt 替换为空字符串,即去除 .txt 后缀。
举个例子,如果 $file 的值是 example.txt,那么 ${file%.txt} 就会被替换为 example。
所以,${file%.txt}.md 就是将文件名的 .txt 后缀替换成 .md 后缀。
在Shell中,% 是一种用于参数扩展的特殊符号,用于执行从字符串末尾进行模式匹配的操作。在 ${parameter%pattern} 中,% 表示从 $parameter 的末尾开始,删除最短匹配 pattern 的子串。
在这个例子中,${file%.txt} 表示删除变量 $file 末尾的 .txt 子串。因此,${file%.txt} 将返回不带 .txt 后缀的文件名。