1
#!/bin/bash

cp ./Source/* ./Working/ 2> /dev/null
echo "Done"


for filename in *.zip;do unzip “$filename”;
 done

上記のスクリプトでは、すべてのファイルをソースから作業フォルダにコピーし、ファイルを作業フォルダに解凍しようとしていますが、エラーが発生していますunexpected end of file

4

2 に答える 2

3

にさまざまな種類の二重引用符があるようです"$filename"。両方が ASCII 二重引用符 (10 進数 34、16 進数 22) であることを確認してください。スクリプトを分析してみてください

 od -c scriptname
于 2013-05-20T16:58:32.733 に答える
0

ここには最大 2 つの問題があります。まず、引用符は標準ではありません。おそらく、MS Word または引用符を自動的に変換するものからコピーして貼り付けたものでしょう。

2 つ目の問題は、ファイル名にスペースが含まれている可能性があることです。これは、予期しない場合、スクリプトであらゆる種類の問題を引き起こす可能性があります。いくつかの回避策がありますが、おそらく最も簡単なのは IFS を変更することです。

OLDIFS=$IFS
IFS="$(echo -e '\t\n')" # get rid of the space character in the IFS
... do stuff ...
IFS=$OLDIFS
于 2013-05-20T17:01:10.450 に答える