Windowsでシェルスクリプトを作成するためにPHPを使用しようとしています。より大きな機能性の一部です。ここでWindowsからPHPでUNIXセーフテストを作成する
は私のスクリプトです: - エラーこのファイルはサーバー上になったとき
$contents_str = ''.
'#!/bin/bash
yes | apt-get update
yes | apt-get upgrade
useradd sudoer -g sudo -s /bin/bash -m
echo "sudoer:sudoerpass" | chpasswd';
しかし、私は「そのようなファイルやディレクトリ悪いインタプリタ」を取得します。私はファイルにいくつかの隠された窓の文字があるので、それが分かっています。
PHPで隠しウィンドウ文字を削除するための関数やスクリプトはありますか?あるいは、サーバーでこれを行うために使用できる単一のbashコマンドがありますか?
私はファイルにdos2unixを使用しましたが、これを行った後に動作しますが、サーバーにインストールする必要があり、すぐに使えるものが必要なのでdos2unixを使用したくないですUbuntuボックス。
ありがとうございました。
EDIT:
私はちょうどにpreg_replaceを使用して文字列をクリーンアップする方法を見つけました。これは私のために何の問題もなく働いた
$contents_nixsafe_str = preg_replace('/(\r\n|\r|\n)/s', "\n" , $contents_str);
:
は、ここで(もちろん、私はすでに上記掲載のコードから継続)のコードです。
ウィンドウを使用しないでください。/me laughsしかし、テキストエディタには、Unix互換の改行オプションが必要です。私はそれを調べ、それがそれらを使用していることを確認するでしょう。 –
@ブラッド:私はシェルスクリプトを書こうとするときにNotepad ++を使用しますが、問題はありません。しかし、この例では、PHP(Zend Studio 8を使用している)にシェルスクリプトの内容が必要です。 –
これは決して使用しませんが、Windowsに合わせて改行をUNIXスタイルに設定する必要があります。それを私の周りに記述するのは悪い習慣です。ソースで問題を解決し、ハックしない方がよい。しかし、それぞれ自分自身に。 Zend Studioのサポートについては、http://forums.zend.com/viewtopic.php?f=50&t=2158とhttp://forums.zend.com/viewtopic.phpを参照してください。f = 59&t = 3799なぜ私はZendがこのような失敗を起こすのかよく分かりませんが、まあまあです。 –