アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

CentOS5にて、ディレクトリ「/home/user」からリモートホスト「192.168.11.200」の「/home/user」へ
sshの鍵方式を使い、SCPで画像のコピーを行うシェルスクリプトを書きました。

以下のシェルスクリプトを書いたのですが、3行目の「/usr/bin/scp」が引っかかって
「/home/user/move_img.sh: line 3: `/usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r ${FILE} user@192.168.11.200:${FILE};'」
とのエラーが出てしまいます。

素人のくせにシェルなんて書くなと言われればそれまでですが、
一体どの記述が悪いのか見当がつきません。

ご教授をお願いいたします。

------
#!/bin/sh
for FILE in `find /home/user -regex ".*\.\(jpg\|png\|gif\|JPG\|GIF\|PNG\)"`;
/usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r ${FILE} user@192.168.11.200:${FILE};
done
------

A 回答 (3件)

doなくない?



例)
for w in The quick brown fox jumps over the lazy dog; do
echo $w
done

詳しくは、man sh
    • good
    • 0
この回答へのお礼

すみません、初歩的なエラーでした。
たしかにdoが抜けていたためにシェルがコマンドを叩けなかったんですね。
ありがとうございました。

お礼日時:2011/06/07 10:04

あと、その前後にエラーメッセージなかったですか?



/home/user/move_img.sh: line 3:syntax error near unexpected token `/usr/bin/scp'

って感じで。エラーの内容はこちらで説明されています。
検索して対処法を探すなら、こちらの文章でやってください。
`/usr/bin/scp'は、ここの側にあります、という場所を示すものなので、検索はその前までにします。
    • good
    • 0
この回答へのお礼

ご説明ありがとうございました。
もう一度出力してみたら、「/home/user/move_img.sh: line 3:syntax error near unexpected token `/usr/bin/scp'」とのエラーが出ました。
原因は「do」が入っていなかったことが考えられます。

お礼日時:2011/06/07 09:53

実行するコマンドが一つなら、forなど使わず、findの-execを使うのが便利。


find /home/user -regex ".*\.\(jpg\|png\|gif\|JPG\|GIF\|PNG\)" -exec /usr/bin/scp -P 22 -i "/home/user/.ssh/id_rsa" -r \{\} user@192.168.11.200:\{\} \;

くわしくは man find
Linux等のunix系OSでわからないことがあったら、とりあえず man を読む。
    • good
    • 0
この回答へのお礼

この方法は初めて知りました。
scpで新たな問題が出ましたので、それを解決したときに試してみます。
ありがとうございました。

お礼日時:2011/06/07 10:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!