0

我想知道是否有与 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

它所做的只是重命名一些文件,但我注意到它可以在命令行上运行,但在我运行时不能在 shell 脚本中运行sh rename.sh

我得到了错误

rename.sh: syntax error at line 7: `rename=$' unexpected

变量赋值在 shell 中的处理方式与在命令行中的处理方式不同吗?

4

1 回答 1

2

不同的 shell 以不同的方式处理命令。您的脚本是一个bash脚本(如第一行所示#!/bin/bash),因此它需要由 运行bash,而不是sh

bash rename.sh
于 2013-04-12T22:36:13.567 回答