Je n'ai jamais utilisé php avec CLI, mais j'ai vu des scripts en cours d'exécution avec du code PHP. P>
Je me demandais: p>
8 Réponses :
Préférence principalement. P>
Les langues de niveau supérieur (comme PHP) ont de meilleures structures de données facilement accessibles (entre autres). Cependant, il est assez facile de pirater un script de bash de travail. P>
Donc vraiment, c'est à vous de décider. P>
bash est plus fréquent pour ce type d'application, simplement en vertu d'elle étant autour pour toujours. Mais quand il s'agit de choisir un sur l'autre. La langue que vous connaissez déjà est généralement le meilleur choix. Ce n'est pas parce que vous serez plus productif. p>
Il n'y a pas de meilleure réponse que celle-ci
php n'est que mieux dans le répertoire Web. Bash convient mieux à la manutention des entrées de ligne de commande et de la sémantique générale de la coquille, imo. P>
Pour être honnête, je choisirais Python, Ruby ou Perl sur PHP pour écrire des scripts Shell, pour des raisons similaires que je pourrais choisir PHP sur Bash pour servir de contenu via HTTP.
Je pense que Python est meilleur que php pour CLI. P>
Si vous n'avez jamais utilisé PHP, je recommande Python, car PHP a été conçu à l'origine pour le développement Web pour produire des pages Web dynamiques et pour Python, c'est plus généreux et mettez l'accent sur la lisibilité du code. P>
Python est meilleur que php car il a shuttil code> et
getopt code> des modules simplifiant de nombreuses tâches CLI. Vous devez faire ces choses à la main pour PHP.
Je seconde la recommandation Python. Si vous avez le malheur de travailler dans un environnement Windows comme moi, écrire CLI à Python est relativement transférable d'un système d'exploitation à un autre. Alors que l'utilisation de Bash directement n'est pas, à moins que vous ne puissiez utiliser Mingw, ce que je ne suis pas. La bonne chose à propos de Python est la possibilité d'intégrer avec les capacités de ligne de commande d'hébergement du système d'exploitation. Si vous devez utiliser une doublure comme ci-dessus, vous pouvez facilement les accéder à Python.
PHP a été conçu pour le Web est le pire argument. Cela fonctionne parfaitement comme un outil CLI plus, il est en faveur de tout ce que Python a, il n'est pas nécessaire d'utiliser Python à moins que vous n'ayez un fanatique d'indentation. Il est plus lent que PHP et plus cryptique. Quant à Bash, il est définitivement préféré ici. Utilisez une langue plus complexe s'il y a un besoin pour cela.
Il est toujours beaucoup plus facile d'effectuer de nombreuses tâches communes dans Bash. Envisagez d'écrire des équivalents PHP pour les Bash One-Linders suivants:
# 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
La seule façon droite est celle qui vous aide à atteindre vos objectifs. Alors, ce n'est jamais quand tu utilises php, bash, python ou autre chose. Il suffit de faire la façon dont il convient le mieux pour vous.
J'aimerais signaler la possibilité de, en PHP, d'utiliser des backtics pour exécuter RM -RF OldTrashFolder code>. Cela annule essentiellement cette opinion. Code dans tout ce que vous êtes à l'aise, imo. En outre, prenez en considération si votre script sera dans un environnement dans lequel vous ne voulez pas que PHP est installé (ou vous le déplacerez pour une exécution rapide et que vous ne souhaitez jamais installer PHP simplement parce que vous avez choisi de l'écrire dans Php).
Pour les scripts de tâches générales, je suggérerais d'aller bash tout le chemin. P>
bash est probablement le plus largement répandu que votre script sera capable de fonctionner sur la plupart des systèmes * Nix. Par contraste PHP ne sera pas toujours facilement disponible. Bien sûr, si vous n'avez pas l'intention d'utiliser ces scripts sur un système inconnu, vous serez bien avec les deux. P>
Cela dit, la plupart des commandes de shell standard sont plus faciles à écrire dans BASH, puis à PHP. En PHP, vous ouvririez des sous-processus, exécutez des commandes Shell via certaines fonctions de wrapper ou sur la non-sie dans BASH, vous enregistreriez simplement votre session Bash dans un fichier de l'exécutable. Prenez la liste d'un répertoire par exemple, dans BASH, indiquez simplement La plupart des langues à usage général peuvent être utilisées pour les scripts shell, mais cela ne signifie pas qu'ils devraient être et à la fin de la journée, il s'agit d'obtenir le travail et une question de préférence subjective. P > LS code> et dans PHP, vous utiliseriez probablement Scandir qui n'est pas amusant car il sonne. De plus, j'imagine que le scandaire a beaucoup moins d'options de tri.
grep -ri quelque chose. Code> Quelqu'un? P>
Bon exemple avec ls vs scandir :)
Je suppose que la chose principale est la suivante: Bash est toujours là sur un système UNIX récent (ses prédécesseurs sont toujours toujours là, même sur l'unixe antique). Bash utilise chaque petit utilitaire sur le système, qui peut inclure PHP, Python, Ruby, Awk, Perl (ces deux derniers surtout). P>
Considérez-vous: Comment obtenez-vous PHP installé? Bouquet de scripts Bash et d'un maquillage, non? Ou votre gestionnaire de packages OS, que ces jours-ci est probablement python, mais aussi d'être un script Bash. P>
Vous ne pouvez pas administrer UNIX sans bien connaître la coquille, vous ne pouvez pas écrire ou utiliser des maquillages. Ce n'est peut-être pas la bonne réponse à chaque fois, mais pour un travail de script, j'essaie toujours de comprendre si cela peut être fait à Bash en premier. P>
Je cherchais moi-même dans ce moi-même comme je suis à jour effectuer une mise à niveau A sur de grands fichiers LMS après avoir rencontré ce lien et un autre qui en résulte d'un test de profilance, je pensais ajouter ce lien à
Bienvenue! Veuillez lire les règles avant de poster une question ou une réponse.