PHP &

3 Cevap php

Ben kendi programını yapmak istiyorum ama örneğin ben tipik bir 'Merhaba $ user' programı yapmak istiyorum nasıl .. hiçbir fikrim yok.

Yani ..

├── hi
│   ├── hi.sh
│   ├── hi_to.sh

hi.sh

#!/bin/bash
~/hi/hi_to.sh $1 

hi_to.sh

#!/usr/bin/php
<?php
    echo "\nHellO ".$argv[1]."\n";
?>

Run it in terminal:

me:~/hi  
→ ./hi.sh User

HellO User

and my question is: how to compile all this files into one bash program?

3 Cevap

Sen yok. Bir senaryoya istiyorsanız, o zaman ilk etapta bir komut dosyası koydum.

Eğer sadece bu gibi hi_to.sh diyebiliriz çünkü, biz soruyu anladığını sanmıyorum:

./hi_to.sh user

Ve ilk sh script kurtulmak, istediğiniz gibi çalıştırmak olacaktır.

Ben bu 'kombine' görebiliyordu tek yolu temelde ikinci oluşturmak için ilk komut, sonra çalıştırmak neden burada bir-doc, kullanmaktır:

#!/bin/sh

cat << EOF > /tmp/$$.php
<?php
    \$string="$1";
    echo "\nHellO ". \$string ."\n";
?>
EOF

/usr/bin/php -q /tmp/$$.php
retval=$?

rm /tmp/$$.php

exit $retval

Bu örnekte, $1 ilk argüman genişleyecektir. Ben çalıştırıldığında PHP genişletmek olacaktır (sadece PHP ile ilgili) diğer değişkenleri, kaçmış. $$ bir kabuk sadece script PID'ine genişler, gerçek geçici dosya /tmp/1234.php gibi bir şey olacak. mktemp(1) bağlantı saldırıları ve çarpışmalar daha dayanıklı olan bir geçici dosya isim yapmak için çok daha güvenli bir yoldur.

Ayrıca komut çıktığında sonra iade edilir retval PHP çıkış durumunu kaydeder.

Oluşan dosya (kabuk için ilk argüman varsayarak foo) bu gibi görünecektir:

<?php
   $string="foo";
   echo "\nHello " . $string . "\n";
?>

Bu, diğer komut yazmak için bash kullanmak için nasıl bir iğrenç gösteri tür, ama en azından olası olduğunu göstermektedir. (Eğer belirtildiği gibi) 'birleştirmek' için size gönderilen iki komut düşünebildiğim Onun tek yolu.