what is the usage of variable declaration like ANSIBLE_ROOT=${ANSIBLE_ROOT:-~/ansible}

i am  quite confused about this below shell variable declaration. and what us the benifit out of this?

devops@[~] $ ANSIBLE_ROOT=${ANSIBLE_ROOT:-~/ansible}
devops@[~] $ echo $ANSIBLE_ROOT
/home/devops/ansible
devops@[~] $

=========================================================================>

root@[devops] # ANSIBLE_ROOT=${ANSIBLE_ROOT:-~/ansible}
root@[devops] # echo $ANSIBLE_ROOT
/root/ansible
root@[devops] #
LVL 1
BharathKumarRaju DasaraRajuDevops EngineerAsked:
Who is Participating?
 
David FavorConnect With a Mentor Linux/LXD/WordPress/Hosting SavantCommented:
This means to set $ANSIBLE_ROOT to ~/ansible if it's empty, so if this variable already has a value, then it will keep it's value, else be set to the new value of ~/ansible.
0
 
BharathKumarRaju DasaraRajuDevops EngineerAuthor Commented:
Thanks but iam not getting the below varible...

root@[devops] # x=${x:-123}
root@[devops] # echo $x
123
root@[devops] #

but when i reassigned its value still am geting old value as below...

root@[devops] # x=${x:-~/ansible}
root@[devops] # echo $x
123
root@[devops] #
0
 
BharathKumarRaju DasaraRajuDevops EngineerAuthor Commented:
yeah i got this


if we use x=${x:-~/ansible} varible like this if the varible has already value it won't change how many times we re-assign different values to the same variable in same way like x=${x:-~/raju}  x=${x:-~/hello} x=${x:-~/helloworld} :) Thank you for the clarification
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.