Comment exécuter correctement Perl “one liner” scripts ligne de commande?
J'ai regardé à travers un certain nombre de tutoriels, mais je n'arrive toujours pas à comprendre ce que je fais de mal.. je suis en train d'essayer le code ci-dessous (dans une .pl Perl fichier comme un fichier exécutable):
#!/usr/bin/perl
perl -e 'print "Hello";'
J'exécute ce script et obtenir:
Exécution de /home/user1/Desktop/file_backups.pl abandonnée en raison d'erreurs de compilation.
(Je suis nouveau à l'aide de Perl, pour appeler la ligne de commande de Linux.)
- Pensez-vous avoir Perl en appellent à l'linux (shell) de la ligne de commande, ou avoir le shell appel Perl?
Vous devez vous connecter pour publier un commentaire.
perl
n'est pas une commande valide à l'intérieur d'un script Perl. Si vous avait nommé ce fichier comme une .sh script, et utilisé#!/bin/bash
sur la ligne shebang, il aurait travaillé, mais il n'a pas vraiment beaucoup de sens d'écrire un fichier bash juste pour invoquer Perl (pourquoi ne pas invoquer Perl directement?)Puisque vous avez mentionné que vous souhaitez interagir avec la ligne de commande, je vais mentionner ici que vous pouvez obtenir les options de ligne de commande à l'intérieur de Perl via le
@ARGV
tableau. (Voir perldoc perlvar.)Essayer:
Ou, si vous voulez que votre script shell pour exécuter du code Perl:
De fond:
#!
est un interprète la directive.Il suffit de taper sur la ligne de commande (pas dans un dossier)
perl -e 'print "Hello World\n";'
Ce n'est vraiment bon pour les oneliners. Plus les scripts ont besoin de leur propre fichier...
Cela devrait fonctionner. Des guillemets à l'extérieur de guillemets à l'intérieur 😉
Vous pouvez essayer de le faire:
Dire que vous avez les données suivantes:
Tout le monde sait que les majuscules sont beaucoup mieux!
Alors maintenant
Mais nous aimerions bien cela peut-il dans une commande appelée
upcase
, et c'est facile à faire!La voir à l'œuvre:
Plus des conseils d'un réponse à une question similaire:
Parce que vous ne donnez pas le véritable one-liner que vous voulez convertir, j'ai dû donner un large réponse générale. Si vous modifiez votre question à faire en fonction de ce que vous voulez faire, nous pouvons donner plus de réponses utiles.
Puisque vous avez dit que vous êtes à la recherche pour le contraire, ce peut être ce que tu veux dire: