Shell脚本和命令行差异

时间:2013-04-12 22:32:53

标签: linux bash shell unix

我想知道是否存在与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中的变量赋值处理方式与命令行的处理方式不同吗?

1 个答案:

答案 0 :(得分:2)

不同的shell处理命令的方式不同。您的脚本是bash脚本(在第一行#!/bin/bash上标识),因此需要由bash运行,而不是sh

bash rename.sh