0
votes

J'ai besoin de pointer un ensemble d'exécutions terminales à une référence simple

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

pseudo code, xxx < / pré>

Le renvoi doit, exécuter de la même manière que git init.

Veuillez ne pas ajouter de solutions fonctionnelles, il est déjà mis en œuvre


5 commentaires

Demandez-vous comment exécuter git init. 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. plusieurs fois dans un seul script shell, et au lieu de l'écrire à chaque fois, vous voulez un nom simplifié comme create_repo ?


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


3 Réponses :


2
votes

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 alias code>.

Le terme plus simple si 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> xxx pré>

dans cet alias, a besoin de 2 paramètres, le nom d'alias de référencement, la fonction Bash Exact. P>

$ alias refGit='git init . '


3 commentaires

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



0
votes

Vous pouvez être intéressé par des commandes telles que crontab (1) < / a> ou à ou lot < / a>, et vous pourriez utiliser Guile comme langue de script (il est beaucoup plus expressif et puissant que bash 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 (peut-être pas le même dans un cron ou lot travail et dans votre terminal). Voir Conventions connexes dans Environ (7) .

La table des appels système Linux est sur Syscalls (2) < / a>.

Veuillez prendre plusieurs jours pour lire des livres tels que Programmation Linux avancée (en ligne ou sur papier).

Envisagez d'étudier pour inspiration Le code source de la plupart des utilitaires Linux, ils sont très souvent Open Source . Peut-être que mon Execicar.c pourrait vous intéresser? (GPLV3 + code, commenté mais non documenté autrement).

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 .

J'ai besoin de pointer un ensemble d'exécutions de terminaux à une référence simple

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.

Je développe un script bash simple ...

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 bash 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.


0 commentaires

0
votes

Vous pouvez créer des fonctions telles que dans d'autres langues:

#!/bin/bash

refer1() {
  git init .
}

refer1


0 commentaires