exécution de l'interpréteur de script sans appel sh implicitement
Je me demandais si il est possible de faire un "lien" dans usr/bin (c) qui mène à un shell-script.
Mais je veux juste écrire
% shellscript
au lieu de
% sh shellscript.sh
un peu comme un alias.
Est-ce possible?
- n'oubliez pas de la la ligne shebang que la première ligne du script pour que cela fonctionne
- Tout le monde le nom de leurs scripts shell <shell script>.sh? Je n'ai jamais utiliser un
.sh
extension sur les scripts, j'ai donc toujours juste tapé "shell script' - P - j'ai tendance à le nom de la mine .sh (ou .bash) si elles sont petites un compromis que je ne vais avoir besoin d'un peu de temps et de l'exécuter à partir de mon dossier d'accueil, mais la chute de l'extension si je vais les déplacer vers un dossier bin et de les partager avec d'autres utilisateurs ou de les utiliser beaucoup.
- Eh bien, je les ai utilisés parce que 1. Je suis d'utilisation à partir de Windows et 2. J'aime savoir ce que le fichier est 😉 Merci à vous tous pour vos réponses grands!
- Je comprends totalement les "habitués" -- vous devriez essayer le
file
de commande sous Unix/Linux, par exemple noter la différence entrefile shellscript.sh
etfile /bin/cat
(mais cela ne veut pas dire un seul coup d'œil comme ayant une extension)
Vous devez vous connecter pour publier un commentaire.
La première ligne du script
Puis le rendre exécutable en tapant la commande:
Maintenant, si vous placez le script dans un
bin
dossier qui se trouve sur votre système CHEMIN variable et vous serez en mesure de l'exécuter directement. Pour voir les dossiers dans votre chemin d'accès, tapez:J'ai l'habitude d'utiliser
/home/[my username]/bin
pour les scripts que j'ai écrit afin qu'ils n'interfèrent pas avec les autres utilisateurs du système. Si je veux qu'ils soient pour tous les utilisateurs, j'utilise/usr/local/bin
qui est fourni vide sur la plupart des distributions.La
.sh
sur la fin du script du nom de fichier n'est qu'une convention, afin de vous aider à vous rappeler à quel type de fichier il est. Il faudra encore travailler si vous le renommez simplementshellscript
, par exemple, qui viendra compléter vos exigences.Vous pouvez faire le script shell exécutable (
chmod +x shellscript.sh
). Ensuite, vous pouvez vous relier à partir de /usr/bin (ln -s shellscript.sh /usr/bin/shellscript
).ln -s script.sh /usr/bin/script
Oui. Vous pouvez utiliser
ln
pour créer un lien versshellscript.sh
nomméshellscript
. Ensuite, vous devrez le rendre exécutable, mais après cela, (en supposant que/usr/bin
est sur votre chemin) vous pouvez l'exécuter avecshellscript
.En plus de rendre le script exécutable et de faire le lien dans /usr/bin, comme d'autres l'ont suggéré, vous aurez également à ajouter de la "shebang" au début du script:
Ceci vous permet de spécifier le shell interprète (bash, shell bourne, c-shell, perl, python...)
doit être utilisé pour l'exécution de votre script.
J'ai réfléchi à cette question de l'utilisation des extensions de nom de fichier sous Unix/MacOSX et la meilleure réponse que je peux donner est une pâte à partir de mon point de commentaires dans le code que j'ai écrit il y a des années pour automatiser l'ensemble du processus fastidieux de scripts de mise à jour j'écris pour inclusion dans le répertoire /usr/local/bin.
En bref, mon code d'automation (plutôt beaucoup de post ici) 'sudo' insère un fichier exécutable à l'extension de moins de copier le programme dans le répertoire /usr/local/bin, mais le fichier dans le répertoire de développement, le garde du script/programme d'extension du langage en place. Les deux copies ont la même ligne shebang en haut du fichier. Une multitude d'autres tâches répétitives sont automatisées dans le présent code d'automatisation ainsi que des cours. Mais la récompense ultime est le "généraux" associé avec le processus de l'écriture de nouvelles "commandes" ou peaufiner répertoire /usr/local/bin 'commandes' prend que quelques frappes maintenant.
Je reste sur Snow Leopard et se méfier de Lion. Donc, si les choses sont différentes sur Lion je m'excuse pour la confusion. Aussi, si votre système d'exploitation ne dispose pas de l'équivalent de QuickLook partie de ce que j'ai dit peut-être perdu sur vous, mais je pense que n'importe quel Linux/Unix utilisateur peut encore bénéficier de code de colorisation via le vim/moins (http://www-zeuthen.desy.de/~friebel/unix/moins/README) de commandes.
Un exemple de certains de mes automatisé standard colorisation de code de sortie qui facilite QuickLooking thru code dans le répertoire de développement:
De la génération de ce standard html ne me coûte rien et est plus joli dans QuickLook que les pages de man sont générés automatiquement ainsi. Un autre petit exemple gob de traitement automatisé de sortie qui va dans le script dans le programme de développement du répertoire qui sera exécuté quand je suis prêt à commettre l'une des modifications pour le script en question de la "commande" copier dans /usr/local/bin:
En conclusion, pour moi il y a des raisons pour l'utilisation de deux de nommage des fichiers de styles.