Je suis nouveau à l'environnement Linux / Unix. Je développe un script de bash simple pour exécuter une logique des pilotes quotidiens. Mais j'ai besoin de simplifier mes fonctions par ses codes complexes. Existe-t-il un moyen spécifique de résoudre ces problèmes?
Comme exemple, dans le script, je dois exécuter cette fonction, en enveloppant avec référence prédéfinie p>
pseudo code, p> Le renvoi doit, exécuter de la même manière que Veuillez ne pas ajouter de solutions fonctionnelles, il est déjà mis en œuvre p> p> git init. code> p>
3 Réponses :
Dans ces scénarios, la manière la plus recommandée est utilisée les fonctions terminales telles que c'est. Dans ce cas, j'ai réalisé que vous avez spécialement concentré sur la référence à des commandes Bash en termes simples.
Pour les scénarios de thèses peut accueillir par les fonctions Linux Le terme plus simple si dans cet alias, a besoin de 2 paramètres, le nom d'alias de référencement, la fonction Bash Exact. P> alias code>.
alias code> est "Les alias permettent une chaîne d'être substituée par un mot lorsqu'il est utilisé comme étant utilisé premier mot d'une commande simple. " Vous pouvez obtenir plus de détails anticipés en suivant la commande, p>
$ alias refGit='git init . '
Pourquoi l'alias ne recommande-t-il pas?
L'alias n'a pas montré la fonctionnalité abstraite de votre code. Lorsque vous travaillez avec des équipes, des alias font plus de frais de développement (non lisibles, prend du temps à interpréter). alias est correct pour les tâches de développement unique, mais pas pour les développements communautaires
Oui je l'ai eu. Ceci est le code privé et non un travail communautaire. Merci tu @melan
Vous pouvez être intéressé par des commandes telles que crontab (1) < / a> ou La table des appels système Linux est sur Syscalls (2) < / a>. p>
Veuillez prendre plusieurs jours pour lire des livres tels que Programmation Linux avancée EM> A > (en ligne ou sur papier). P>
Envisagez d'étudier pour inspiration Le code source de la plupart des utilitaires Linux, ils sont très souvent Open Source A >. Peut-être que mon Execicar.c pourrait vous intéresser? (GPLV3 + code, commenté mais non documenté autrement). P>
Vous pourriez être intéressé par la modification de votre interactif Shell UNIX avec CHSH (1) . J'aime ZSH mais vous préférerez peut-être Poisson . P>
J'ai besoin de pointer un ensemble d'exécutions de terminaux à une référence simple p>
blockQuote>
Avez-vous regardé dans GNU parallèle ou dans CECREAM ? Il semble s'adapter à vos besoins et c'est Logiciel libre (dont code source que vous pouvez étudier) que vous pouvez améliorer et adapter à eux. P>
Je développe un script bash simple ... P>
blockQuote>
Un sujet d'opinion, je ne recommande pas d'utiliser gnu bash (ou TCL ) Pour tout script plus grand que quelques dizaines de lignes (car à code> ou
lot code> < / a>, et vous pourriez utiliser Guile comme langue de script (il est beaucoup plus expressif et puissant que
bash code> est) ou python ou Lua ou OCAML . Voir Expétue (2) qui est la primitive Call System Utilisé pour démarrer tous les programmes (y compris vos scripts de votre crontab (5) fichier). Prenez soin de votre
$ chemin code>
(peut-être pas le même dans un cron code> ou
lot code> travail et dans votre terminal). Voir Conventions connexes dans Environ (7) . P >
bash code> est un non structuré Langue et langage non essuyé, voir ces diapositives ). Linux a de nombreuses langues de script "meilleures" (plus expressives, plus efficaces). Apprenez-les et utilisez-les. P>
Vous pouvez créer des fonctions telles que dans d'autres langues:
#!/bin/bash refer1() { git init . } refer1
Demandez-vous comment exécuter
git init. Code> d'un script Bash?
Non, j'ai besoin de cette commande à d'autres termes de référence plus simples, une telle variable que puis-je appelée de n'importe où dans le contexte du script Bash. [Le mentionné, git init. la commande est un exemple].
Vous souhaitez appeler
git init. Code> plusieurs fois dans un seul script shell, et au lieu de l'écrire à chaque fois, vous voulez un nom simplifié comme
create_repo code>?
Oui, vous gitez, veuillez lire la question à nouveau, je mettez à jour la question avec pseudo code +1
Votre question n'est pas claire et manque de exemple de reproductible minimal