0

シェル スクリプトに関連付けられた特定のアクセス許可があるかどうか、またはいくつかの変数参照が構文的に異なると見なされるかどうか疑問に思っていました。

以下の短い名前変更スクリプトを試しました。

#!/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

エラーが発生しました

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

変数の割り当ては、シェルとコマンド ラインで異なる方法で処理されますか?

4

1 に答える 1

2

シェルが異なれば、コマンドの処理も異なります。あなたのスクリプトはbashスクリプトです(最初の行で識別されるように)、したがって、ではなく#!/bin/bashによって実行する必要があります。bashsh

bash rename.sh
于 2013-04-12T22:36:13.567 に答える