Forum Programmation.c Faire lire a bash un fichier de configuration personnalisé.

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
0
30
déc.
2016

Salut les gars,

Je cherche, pour une mon application qui lance bash ou l'interpréteur de votre choix, a faire lire a bash (pour le moment) un fichier ce configuration personnalisé.

J'ai bien sur chercher man bash, info bash, etc…

seulement je ne trouve pas le moyen de lui faire lire un fichier qui ne serai pas:

~/.bash_aliases
~/.bash_history
~/.bash_logout
~/.bashrc

ou les analogues dans /etc/….


Bref je ne veut pas qu'il faille ajouter le contenus de mon fichier de configuration personnalisé a un fichier que lis bash au lancement.

Et d'ailleurs je ne suis même pas sûr que bash le fasse ?

Que je le lance correctement autrement dit:

  // [...]  

  char *argv_cmd[2] = {settings.user_shell, NULL} ;

  /** Fork a new process: your default shell. **/
  // The process is killed per example if you closing a terminals tab or by resetting the terminal else it is automatic by exiting the application.
  // So we let no zoombies after us.  
  GPid child_pid ;

  gchar **envp = g_get_environ() ;

  vte_terminal_spawn_sync(VTE_TERMINAL(vteterminal),
                          VTE_PTY_DEFAULT,
                          settings.start_dir,
                          argv_cmd,
                          envp,
                          G_SPAWN_DEFAULT, NULL, NULL, &child_pid, NULL,  NULL);


  g_strfreev(envp) ;

  vte_terminal_watch_child(VTE_TERMINAL(vteterminal), child_pid) ;

  // [...]  

J'ai par exemple essayer de faire:

char *argv_cmd[4] = {settings.user_shell, "-o", "history", NULL} ;

Afin que l'historique soit disponible dans mon (vte)terminal.

Mais cela ne marche pas, même en passant G_SPAWN_FILE_AND_ARGV_ZERO comme flag.


Toute aide est bien sur la bienvenue.

Merci pour votre aide et vos réponses éclairées.

PS: Je ne désire pas que passer "bash -o history" comme option, je pense aussi définir des alias aussi, etc…

  • # --rcfile

    Posté par  (Mastodon) . Évalué à 4.

    Lu dans le man :

    L'option --rcfile fichier forcera bash à lire et exécuter les commandes dans fichier plutôt que dans /etc/bash.bashrc et ~/.bashrc.

    As-tu essayé ça ?

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: --rcfile

      Posté par  (site web personnel) . Évalué à 1.

      Merci,

      en faîte je désire d'abords que bash lise ses fichiers de configuration, ce qu'il ne semble pas faire correctement, car j'ai un problème d'historique qui n'est pas respecté (d'ou l'idée de passer "set -o history").

      Puis de faire lire a bash des "fichiers de configuration personalisé" en complément des fichiers qu'il devrait lire quand ont le lance, en complément des fichiers habituel.

      Mais comme j'ai hacker la doc, cela ne semble pas être possible, il va falloir forcer l'utilisateur a copier les fichiers de "configuration personnalisé" dans le bon dossier…

      Merci pour ta réponse, en toute sympathie, Linuxator.

      • [^] # Re: --rcfile

        Posté par  (Mastodon) . Évalué à 2.

        Et en faisant "bash --rcfile global.bash"

        Et global.bash qui contiendrait :
        . /etc/bashrc
        . ~/.bashrc
        . ~/ma-config-personnelle

        Ça le ferait pas ?

        En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.