Difference between revisions of "Bash test missing variables"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "https://unix.stackexchange.com/questions/463034/bash-throws-error-line-8-1-unbound-variable ``` n particular, one could use [ -n "${1-}" ] (that is, with an empty default valu...")
 
 
Line 1: Line 1:
 +
 +
 +
```
 +
if ! [ -n "${myvar-}" ]; then
 +
  echo $myvar not exist
 +
fi
 +
```
 +
 +
https://tldp.org/LDP/abs/html/comparison-ops.html
 +
```
 +
-n
 +
string is not null.
 +
 +
Caution
 +
The -n test requires that the string be quoted within the test brackets. Using an unquoted string with ! -z, or even just the unquoted string alone within test brackets (see Example 7-6) normally works, however, this is an unsafe practice. Always quote a tested string. [1]
 +
```
 +
 
https://unix.stackexchange.com/questions/463034/bash-throws-error-line-8-1-unbound-variable
 
https://unix.stackexchange.com/questions/463034/bash-throws-error-line-8-1-unbound-variable
 
```
 
```

Latest revision as of 13:32, 29 March 2023

if ! [ -n "${myvar-}" ]; then
  echo $myvar not exist
fi

https://tldp.org/LDP/abs/html/comparison-ops.html

-n
string is not null.

Caution 
The -n test requires that the string be quoted within the test brackets. Using an unquoted string with ! -z, or even just the unquoted string alone within test brackets (see Example 7-6) normally works, however, this is an unsafe practice. Always quote a tested string. [1]

https://unix.stackexchange.com/questions/463034/bash-throws-error-line-8-1-unbound-variable

n particular, one could use [ -n "${1-}" ] (that is, with an empty default value) to see if the parameter is set and non-empty; or [ "${1+x}" = x ] to see if it's set, even if empty. – 
ilkkachu
 Aug 16, 2018 at 18:30
I still get unbound variable error despite using if [[ -n ${1-default} ]] – 
Chaitanya Bapat
 Dec 7, 2019 at 2:59
5
@ChaitanyaBapat I was still getting unbound variable as well until I used :- instead of -. So, for me at least, the ${1:-default} no loner raised the error. – 
Adam Badura
 Apr 9, 2020 at 11:26
As a side note, if you are trying to access an array element with an index out of range, you get the same error (with syntax ${my_array[$index]}).