我想知道是否存在与shell脚本相关联的特定权限,或者是否将某些变量引用视为语法不同。
我尝试了下面的简短重命名脚本:
#!/bin/bash
echo "Starting Renaming Script"
for file in ./*
do
rename=$(echo $file | sed 's/\(img_\)\([0-9]*-[0-9]*\)-\([0-9]*\)_\([0-9]*\).jpg/newyears_20\3-\2_0\4.jpg/')
mv $file $rename
done
所有这一切都是重命名一些文件,但我注意到它可以在命令行上运行,但在我运行sh rename.sh
时不在shell脚本中
我收到了错误
rename.sh: syntax error at line 7: `rename=$' unexpected
shell中的变量赋值处理方式与命令行的处理方式不同吗?
答案 0 :(得分:2)
不同的shell处理命令的方式不同。您的脚本是bash
脚本(在第一行#!/bin/bash
上标识),因此需要由bash
运行,而不是sh
。
bash rename.sh