Variable operator | Action |
Description |
${varname} |
Nonambiguous variable substitution |
Simple variable substitution occurs with the value of varname being substituted |
${varname:=value} | Assign a default value for the variable if a value does not exist. |
If varname does not have a value or is set to null, then varname is set to value. Varname is then substituted in the statement. |
${varname:+value} |
Utilize value if varname is set |
If the variable, varname, contains a value and is not null, then the alternate value, value, is substituted instead of the value of the variable varname. Otherwise nothing is substituted. |
${varname:-value} |
Assign a temporary default value for a variable if one does not exist |
If the variable, varname, contains a value and is not null, then it is substituted; otherwise the value, value, is substituted but is not assigned to varname. (different from = operator) |
${varname:?value} |
Issue an error message if the value of variable is not set to any value. |
If the variable, varname, containsa value and is not null, then it is substituted; otherwise an error message containing the value, value, is printed and the Shell exits. |
${#varname} |
Return the length of the value contains in varname or the number of positional parameters. |
If varname is set, the length of the value of varname is returned. If the special variable * or @ is used as varname then the number of positional parameters are returned. |
${varname#pattern} ${varname##pattern} (Korn and Bash only) |
Substitue varname with pattern removed from the beginning of varname . |
If the pattern matches the begining of varname, then pattern is removed from varname. If the # form is used, then the shortest match is removed. If the ## form is used, then the longest match is replaced. |
${varname%pattern} ${varname%%pattern} (Korn and Bash only) |
Substitute varname with pattern removed from the end of varname. |
If the pattern matches the end of varname, then pattern is removed from varname. If the % form is used, then the shortest match is removed. If the %% form is used, then the longest match is replaced. |
${#arrayname[*]} |
Substitute the number of elements in the array. |
The number of elements in the array arrayname is substituted. |
<From : UNIX Shell Programming, FOURTH EDITION, LOWELL JAY ARTHUR, TED BURNS - WILEY COMPUTER PUBLISHING>
'Domain > Linux' 카테고리의 다른 글
git server daemon 설치하기 (0) | 2013.06.13 |
---|---|
atime 대신에 strictatime을 사용하자! (0) | 2013.05.31 |
[Linux][Shell] Cleaning PATH environment variable. (0) | 2011.09.15 |
[Ubuntu] C-s and C-q doesn't work in gnorm-terminal (0) | 2011.03.18 |
[Ubuntu] visual effect doens't work with Nvidia driver... (0) | 2011.01.19 |