2012-02-29 12 views
1

最初に私はシェルスクリプトの非常に新しいです。私は1つのパラメータをとり、そのパラメータを使用して別のディレクトリに名前を付けるフォルダをコピーするスクリプトを作成しようとしています。私はそれがは、/ var/www/html/fbplugin /クロムにcdすることはできませんと言い、このコードを実行するとシェルスクリプト内のCdが動作しない

#!/bin/sh 
cd /var/www/html/fbplugin/chrome 
sudo mkdir temp/$1 
sudo cp -rf "/var/www/html/fbplugin/chrome/fbplugin" "/var/www/html/fbplugin/chrome/temp/$1" 

:これは私が持っている現在のコードです。私はディレクトリが存在することを知っているので、なぜこれを言っているのかわかりません。私は直接行をコピーして、それは端末で動作します。もし誰かが私を助けてくれるなら、それはすばらしいだろう。

それは私が

+0

あなたは '#!/ bin/sh'を持っているので、スクリプトを実行する通常の方法は'。/ build.sh'です。 'sh build.sh'は[shebang](http://en.wikipedia.org/wiki/Shebang_(Unix))を無視します。しかし、 'bash build.sh'を試してみてください。私はそれが問題を解決するとは思っていませんが、より具体的なエラーメッセージが表示されます。 –

+0

bash build.shを実行すると、次のような結果が得られます。そのようなファイルやディレクトリはありません.www/html/fbplugin/chrome – Raj3m8

+0

あなたが受け入れた答えに基づいて、問題はターミナルで入力したスクリプトとコマンドが異なるユーザー。将来の参考として、これは重要な情報です。あなたの質問に言及すると、時間が節約されています。 –

答えて

2

実際にそのディレクトリが存在する場合は、別のユーザー(cron、webserverなど)でそのスクリプトを実行している必要があります。

そのディレクトリの権利を確認してください。

+0

これはうまくいきましたが、私はchmodで正しいパーミッションを設定していませんでした – Raj3m8

0

を「のsh build.sh」を入力していたスクリプトを実行するために重要な場合は、CDについてのエラーを取得している理由を私は知らないが、あなただけの絶対使えるように見えますパス全体。それは、スクリプトが正しく動作する大きな問題を解決します。

+0

ええ、私はそれらを絶対的なものにしようと試みました。このエラーを私に与えないでください。 – Raj3m8

関連する問題