CLI komut dosyası için bash vs php?

7 Cevap php

i ile CLI PHP hiç kullanmamış, ama php kodu ile çalışacak komut gördük.

php bu kadar popüler ve CLI çalıştırmak mümkün olduğunda biz, bash kullanarak neden ben, merak ediyorum.

her biri ile artıları ve eksileri nelerdir?

i gelecekte tüm CLI komut dosyası için php kullanmak gerekir?

7 Cevap

Hala bash birçok ortak görevleri gerçekleştirmek için çok daha kolaydır. Aşağıdaki bash tek gömlekleri için PHP eşdeğerleri yazma düşünün:

# remove a folder full of rubbish
rm -rf oldTrashFolder

# create an archive of files containing the word 'localhost'
tar cf backup.tar $(grep -rlw localhost ~/my-source-code)

# make a copy of a mysql database
{ echo "create database NEWDATABASE; "; mysqldump OLDDATABASE; } | mysql NEWDATABASE

Python CLI php daha iyi olduğunu düşünüyorum.

PHP hiç kullanılmamış varsa PHP aslında dinamik web sayfaları üretmek için web geliştirme için tasarlanmış, ve Python için, bu daha cömert ve kod okunabilirliği vurgulamak çünkü, ben, Python öneririz.

PHP web dizininde sadece iyidir. Bash IMO, komut satırı girişleri ve genel kabuk semantiğini kullanım için daha uygundur.

Tercihi ağırlıklı.

(Php gibi) Yüksek seviyeli diller (diğer şeyler arasında) kolayca erişilebilir, daha iyi veri yapıları vardır. Ancak, bir çalışma bash betiği birlikte kesmek oldukça kolaydır.

Yani gerçekten, o size kalmış.

Bash sadece sonsuza kadar etrafında olmanın gereği, bu tip uygulama için daha yaygındır. Ama birini diğerine tercih söz konusu olduğunda. Bildiğiniz dili genellikle daha iyi bir seçimdir. Daha verimli olacaktır çünkü.

Genel amacı görev kodlama için Bash tüm yol gidiyor öneririm.

Bash belki de en yaygın kabuk ve komut herhangi bir standart * nix sistem üzerinde çalıştırmak mümkün olacak. Kontrast PHP ile her zaman mevcut olmayacaktır. Bilmediğiniz sistem üzerinden bu komut kullanmayı düşünmüyorsanız eğer Tabii ki hem iyi olacak.

Çoğu standart kabuk komutları php sonra bash yazmak daha kolaydır. Php, bir subprocesses açacak bazı sarıcı işlevleri veya bash ne değildir yaparken size bir dosyada bash oturumu yürütülebilir bunu basit kayıt yapılmış olur aracılığıyla kabuk komutları yürütmek. Bash, örneğin bir dizinin listesini almak sadece devlet ls ve php muhtemelen göründüğü kadar eğlenceli değil scandir hangi kullanarak olurdu. Ayrıca ben scandir çok daha az sıralama seçenekleri vardır hayal ediyorum. grep -Ri something . kimse?

Genel amaçlı dillerin çoğu kabuk komut dosyası için kullanılan olabilir, ama onlar olması gerektiği anlamına gelmez. Sonunda tüm işi ve sübjektif tercih meselesi almak için aşağı gelir.

Bash (selefine gerçekten hatta eski unixen üzerine, orada her zaman) yeni bir unix sistemde her zaman var: Ben asıl şey sanırım. Bash PHP, Python, Ruby, AWK, Perl (bu son iki özellikle) içerebilir sistemde her küçük programını kullanır.

Düşünün: PHP nasıl yüklü alabilirim? Bash komut ve bir makefile Bunch, değil mi? Veya bu gün muhtemelen Python OS paket yöneticisi, aynı zamanda bir betik olarak kullanılır.

Sen gerçekten iyi kabuk bilmeden unix yönetemez, ne de makefile'ları yazabilir veya kullanabilirsiniz. Bu her zaman doğru cevap olmayabilir, ama bir betik iş için ben her zaman ilk bash yapılabilir olmadığını anlamaya çalışın.