Question

What does VAR_NAME=${VAR_NAME:-"/some/path/file"} mean in an shell script?

This is for an init script, I'm writing a custom one to get some of our startup operations into init scripts so that we can start them automatically on boot, but I don't have much experience with shell scripting so I'm using a startup script for an unrelated piece of software that's we've customized in the past.

The path pointed to is to a file that contains configuration values that override defaults set in the script.

I'm having trouble figuring out what that construct really means (the :- part in particular).

The script I'm working off of also seems to chain this operation together to resolve which value to use such as:

LOG_FILE=${LOG_FILE:-${LOGFILE:-$DEFAULT_LOG_FILE}}

Était-ce utile?

La solution

  ${parameter:-word}
        Use Default Values. If parameter is unset or null, the expansion
        of word shall be substituted; otherwise, the value of parameter shall be
        substituted.

Autres conseils

It sets VAR_NAME equal to VAR_NAME if it exists or /some/path/file if it doesn't.

Chaining it would only make sense if the variable names were different going down the chain.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top