5

In terminal:

VAR="Extremely long and often used command"
echo $VAR

Output:

Extremely long and often used command

So far it works fine, but after restarting a terminal my variable doesn't exist. How to fix it?

jw013
  • 51,212

2 Answers2

9

You can put it in your .bash_profile, which gets executed every time you log in.

Or, if it is an alias for a long command, you can put this in your .bash_aliases file under your home directory:

alias short_version="very long command here"
Jeff Schaller
  • 67,283
  • 35
  • 116
  • 255
MelBurslan
  • 6,966
  • 1
    If you have your aliases in .bash_aliases, you must source that file (with source or .) in .bashrc (or otherwise) for it to work - it's not done automatically, at least not for me. – Emanuel Berg Nov 16 '12 at 22:34
  • 1
    @EmanuelBerg, some distros (notably Ubuntu) provide a default .bashrc that automatically sources .bash_aliases if it exists. But you're right, it's not a standard Bash startup file. – cjm Nov 19 '12 at 07:32
  • @cjm: Aha, so that's it. I've heard many people talk about that file so I suspected it was if not a standard, then at least a common practice, from somewhere. Ubuntu. – Emanuel Berg Nov 19 '12 at 20:00
2

You can create/modify/delete permanent variables using kv-bash functions:

1) Download kv-bash file from github:

git clone https://github.com/damphat/kv-bash.git
cp -ar ./kv-bash/kv-bash /usr/local
chmod +x /usr/local/kv-bash

2) Import kv-bash functions:

# You can also put this line in .bash_profile
source kv-bash

3) Now create/modify variables

#let try create/modify/delete variable
kvset myEmail john@example.com
kvset myCommand "Very Long Long Long String"

#read the varible
kvget myEmail

#you can also use in another script with $(kvget myEmail)
echo $(kvget myEmail)

#delete variable
kvdel myEmail

I learned it from this https://hub.docker.com/r/cuongdd1/cloud-provisioning-packs/~/dockerfile/

user219911
  • 21
  • 1
  • Just letting people know there is a re-written fork of this with far more features. https://github.com/imyller/kv-sh Has dump, import, restore, exists and the ability for a local and fallback (ro) default database. – Shanness Aug 16 '20 at 06:49