我正在尝试编写一个简短的脚本,该脚本将两个命令行参数作为文件扩展名,并将具有第一个扩展名的所有文件更改为具有第二个扩展名。 我很确定以下脚本应该可以工作,但由于某种原因,它在定义变量name
的行上给了我一个语法错误,我不确定为什么。 我对 bash 脚本相当陌生,所以任何帮助将不胜感激!
for f in "*$1" do
name=${f%.*}
mv $f "$name$2"
done
Bash 打印的错误消息如下所示:
./script: line 4: syntax error near unexpected token `name=${f%.*}'
./script: line 4: `name=${f%.*}'
原因是您在 do
之前缺少;
或换行符。此外,您也不想在"*$1"
中引用*
,因为*
将被视为文字。更正的脚本:
#!/usr/bin/env bash
for f in *"$1"; do
name=${f%.*}
mv "$f" "$name$2"
done