hello friends,

I am looking for a way to do what I described in the title. When running command command, I dont want to have to type SOME_ENV_VAR=value command every time, especially if there are multiple.

I am sure youre immediately thinking aliases. My issue with aliases is that if I do this for several programs, my .bashrc will get large and messy quickly. I would prefer a way to separate those by program or application, rather than put them all in one file.

Is there a clean way to do this?

  • nicoag328@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    You could source an aliases.sh file on your .bashrc where you define your aliases, so that they don’t fill up your bashrc.

    For example, in your bashrc:

    source ~/.aliases.sh

    This way you could also create a file with aliases per program.

    • treadful@lemmy.zip
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      FYI: $HOME/.bash_aliases is standard and most distros’ .bashrc will source that file by default.

    • Cyclohexane@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      0
      arrow-down
      1
      ·
      1 year ago

      That’s a good idea, but it only makes the problem a little better. I still wouldn’t want one large aliases.sh file with environment variables for every application I customized. Would rather have them separate somehow without gobbling up a file

  • dlarge6510@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Put your aliases in .bash_aliases

    Make sure your .bashrc sources .bash_aliases like this:

    if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi

  • treadful@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Is there some reason you just don’t export those env vars in $HOME/.bashrc or $HOME/.bash_profile?

    export SOME_ENV_VAR=value
    

    If it’s every time you run the command, seems like it should be set globally.

    • Cyclohexane@lemmy.mlOPM
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Because it’s not as maintainable as separating them by application or some other separation. Would not want to fill up my bashrc with single-application specific code.

      • treadful@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        You could break it out into other files if you really got that much going on. But if you really have hundreds or more env vars, maybe you should re-think using env vars at all.

        Hard to give a rec without more detail, so I don’t really get it.