J'ai un script qui montrera certaines options de compression à l'utilisateur (gzip, zip, et bzip). Étant donné que cela est destiné à fonctionner à la fois sur Linux & Windows et la bibliothèque Zlib ne sera pas disponible, je dois compresser tous les fichiers en utilisant des commandes Unix. Bien sûr, si le script s'exécute sous Windows, il n'aura probablement aucun des outils de compression en ligne de commande, et l'application ne devrait donc montrer aucun choix à l'utilisateur. Donc, ce que je veux savoir, c'est comment vérifier si l'outil de ligne de commande existe. Je pourrais juste vérifier si le fichier exécutable existe, mais ce n'est pas fiable du tout (par exemple, sur mon bureau j'utilise Gentoo Linux et la commande zip
vit sur /usr/bin
, d'autre part, sur mon serveur il vit le /bin
).Comment vérifier si une commande peut être exécutée?
Répondre
Utilisez la commande which
. Par exemple, utilisez which zip
pour savoir où vit zip
et si elle existe. Il est livré en standard sous Linux/Mac, et est également disponible for Windows.
Ici http://stackoverflow.com/a/677212/1041470 recomended pour éviter 'which' car cette implémentation de commande est différente pour chaque OS. – VladSavitsky
Vous pouvez simplement compiler zlib pour Windows et y lier votre programme ... sinon vous devrez vivre avec le codage en dur quelques noms de programme dans votre application, et analyser manuellement la variable PATH de l'utilisateur pour trouver où ils sont installés .
Ou, si vous souhaitez utiliser une bibliothèque, vous pouvez utiliser cette fonction de glib: http://www.gtk.org/api/2.6/glib/glib-Miscellaneous-Utility-Functions.html#g-find-program-in-path
Mais si vous utilisez glib dans votre application, à ce moment-là, il est probablement plus facile de construire zlib pour les fenêtres.
Zlib peut être installé sur tous les systèmes d'exploitation ci-dessus.
Si vous regardez le manuel ...
www.php.net/manual/en/zlib.installation.php
Il dit: «Le support intégré pour zlib est disponible avec PHP 4.3.0. "
Zlib n'est pas activé par défaut, vous devez l'activer manuellement dans php.ini. Afin de vérifier si zlib ou tout autre module est activé voir ce tutoriel:
www.wlscripting.com/tutorial/47
- 1. Comment vérifier si une commande shell exécutée correctement ou non?
- 2. Comment vérifier si une application peut être désinstallée?
- 3. Dans gnome-terminal/bash, la sortie std peut-elle être exécutée directement (interprétée?) Comme une commande?
- 4. une application django peut-elle être exécutée en utilisant paster?
- 5. PHP comment vérifier si une requête MySQLi doit être fermée?
- 6. Vérifier si la valeur de int [] peut être longue
- 7. Vérifier si une commande produit sortie
- 8. Jquery SI peut-être?
- 9. Comment commande VerifyTextPresent peut être utilisé dans Sélénium?
- 10. Cette requête SQL peut-elle être exécutée plus rapidement?
- 11. CruiseControl.Net - L'étiqueteuse peut-elle être exécutée après MSBuild?
- 12. Comment écrire une lib en C#, la lib peut être exécutée sans invocation?
- 13. Une application Adobe AIR peut-elle être exécutée via la sortie de la ligne de commande vers la console?
- 14. Comment savoir si une classe peut être sérialisée?
- 15. Comment détecter si une fenêtre peut être affichée?
- 16. Comment vérifier si une requête SQL exécutée sans erreur dans ASP?
- 17. Vérifiez si une ligne peut être supprimée dans MySQL
- 18. Comment vérifier que [out] params dans COM peut être utilisé?
- 19. Comment vérifier si PUT peut être effectué avant d'envoyer le corps de la demande?
- 20. Comment demander à gstreamer si un fichier peut être lu?
- 21. une application compilée .net 3.5 peut-elle être exécutée sur une machine avec seulement .net 2.0?
- 22. Comment vérifier si deux types peuvent être comparés, additionnés, etc.?
- 23. Comment puis-je vérifier si RMI est connecté/peut être connecté?
- 24. Comment vérifier si un symbole peut être résolu dans l'espace de noms actuel?
- 25. Comment vérifier si MemoryStream peut convertir en Bitmap dans .NET?
- 26. Comment détecter si une application est exécutée sous KVM?
- 27. Déterminer si une activité spécifique d'une application peut être lancée
- 28. Déterminez si Silverlight peut être installé
- 29. Une application XNA Silverlight peut-elle être exécutée sur la Xbox 360?
- 30. Quelle commande sera exécutée en premier, Si une procédure stockée a plusieurs commandes de sélection individuelles;
Question similaire: [Comment vérifier si une commande shell existe à partir de PHP] (http://stackoverflow.com/questions/12424787/how-to-check-if-a-shell-command-exists-from-php –