Tuhaf php kabuk komut dosyası davranışı

0 Cevap php

Bu bir Mac üzerinde iseniz yardım ve tamamen gerekli olmasa da, TextMate kullanabilirsiniz.

Benim php konumu:

$which php  
/opt/local/bin/php

Komut:

#!/opt/local/bin/php 
<?php
    shell_exec("echo -n 'my-string' > out.txt");
?>

Otomatik olarak tüm kabuk yankı komutları eklenir yeni satır bastırmak yankı-n.

Ben kabuk yukarıdaki php kodu çalıştırın:

chmod u+x myfile.php
./myfile.php

Ben 'out.txt' ile sonuna kadar, içerikleri varlık:

-n my-string

Ben TextMate içinde aynı kodu çalıştırırsanız, 'out.txt' içeriği doğru olacaktır:

my-string

Ben çıktı değişmez dize '-n' koyarak kadar ne php dışarı rakamlar olamaz. TextMate doğru şeyi yapar neden gerçekten merak ediyorum. Ben de aynı php kullandığınızı kontrol ettikten, php-i çoğunlukla aynı şeyler gösterir, tabii kabuğunda TextMate, diğer dahilinde çalıştırılan biri olarak farklılıklar vardır, yani bir çıkış diğer doesn ise dosyaya işaretçiler 't. Bildiğim kadarıyla söyleyebilirim, $ PATH ve $ ENV aynıdır.

Ben çalıştıkları bu hiçbiri geçici bir çözüm için farklı yöntemleri bir avuç denedim. Bu SO yazabilmek için basit bir durumda aşağı distile edilmiş gibi aslında geçici bir çözüm kullanmak mümkün olmayacaktır. Ben inanılan bu borular pbcopy için My kullanma durumu, Mac OS X sadece bir özellik oldu, böylece evrensel çünkü ben burada >> yönlendirmeyi kullanılır.

Sonuçta, ben bir kabuk kendisinden önce ne olursa olsun çalıştırmak olacağı yapıştırma gibi tehlikeli bir sondaki yeni satır, yoksa benim panosuna bir sonuç istiyorum.

Teşekkürler

0 Cevap