2

指定した場所で tar を抽出するスクリプトを実行する必要があります。

私は次のような簡単なことをしました:

cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar

コマンドを手動で実行すると、すべて問題ありません。それらを .sh に保存してから #bash script.sh を使用すると、「: ディレクトリ cd ではありません: /var/www/html」というエラーが表示されます。理由はありますか?

あなたの時間のためにタイ。

注:仮想マシン(CentOS 5.5)でスクリプトバージョンを試してみたところ、スクリプトは正常に機能しました。問題は、それを使用したい実マシンで発生します(仮想マシンと同じOSディスクイメージ、同じ構成を使用しました。 ..これは私にとって本当に奇妙になります)。

追加: また、service mysqld start のようなものを呼び出してみます...これもディレクトリが存在しないと言って失敗します (手動で実行しても動作します)。

4

3 に答える 3

5

私は問題を解決しました-それは非常に興味深いです)。

centos os を搭載した Windows で実行されている仮想マシンでスクリプトを作成しました。Windows での入力は「\r\n」ですが、Linux では「\n」です。

enterのコードが正しいため、スクリプトはvmで機能しましたが、2番目のコンピューターではネイティブLinuxでは正しくありませんでした。Linuxでまったく同じスクリプトを作成したところ、すべてが正常に戻りました;)。

注... Linuxで記述された別の単純化されたスクリプトを使用したため、mkdir部分は機能しました。

于 2011-07-13T15:33:52.187 に答える
1

cptest.jarをwwwディレクトリの下のファイルhtmlにコピーしているようです。cpを実行する前に、htmlが存在し、ディレクトリであることを確認してください。

mkdir -p /var/www/html
cp test.tar /var/www/html
cd /var/www/html
tar xvf test.tar
于 2011-07-13T14:51:13.827 に答える