2 votes

Comment appeler juste une fonction à partir d'un texte script ?

J'ai un fichier texte contenant de nombreuses fonctions, par exemple :

# fisrt function
# runs update and upgrade
    function upug() {
        sudo apt-get update && sudo apt-get upgrade
    }

# second function
# find out the processes running that use the most memory
    function memusage() {
        ps aux | sort -nrk 4 | head
    }
# third function
# install package
    function ipkg() {
        sudo apt-get install
    }
[...]

Maintenant, je veux pouvoir utiliser ces fonctions comme quelque chose de similaire à ce qui suit dans le terminal :

  • en cours d'exécution upug dans les appels terminaux function upug()

    user@test-pc:~$ upug 
  • en cours d'exécution memusage dans les appels terminaux function memusage()

    user@test-pc:~$ memusage
  • avec unning ipkg package_Name appelle function ipkg()

    user@test-pc:~$ ipkg package_Name

J'ai créé un alias pour chacune de ces commandes avec des noms de fonctions. Maintenant, la question est de savoir comment appeler ces fonctions avec le nom de l'alias ?

1voto

Sylvain Pineau Points 59212

Si j'étais vous, je mettrais à la fois les fonctions et les alias dans mon fichier ~/.bash_aliases (Voir Alias : différence entre .bash_rc, .bash_aliases et /usr/local/bin ).

Puisque vous avez déjà défini les alias dans votre session actuelle, vous pouvez simplement utiliser le fichier texte pour appeler ultérieurement les commandes d'alias :

user@test-pc:~$ . <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt
user@test-pc:~$ upug

Vous pouvez également charger le fichier à partir de votre ~/.bashrc comme suit :

if [ -f <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt ]; then
    . <PATH_TO_YOUR_TEXT_COMMANDS>/my_commands.txt
fi

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X