我想知道是否存在與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