我想知道是否存在与shell脚本相关的特定权限,或者某些变量引用是否被视为语法不同。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
是可变的分配在外壳处理方式不同不是在命令行上?
由于这是一个bash脚本,你应该运行它'庆典rename.sh'。 –
运行这个shell脚本的是什么样的* nix系统?我一直在使用Linux系统9年。所有的shell脚本必须具有#!/ bin/bash(在/ bin/sh是到/ bin/bash的软链接的那些系统上的真正的#!/ bin/sh),并且在Ubuntu/Debian#!/ bin/bash是必要的。而且,shell脚本需要保护以便执行。我通常使用chmod 775来允许用户和组修改特权和非组特权。不是它是无效的,我从来没有必须用bash运行脚本。 – octopusgrabbus