18.5.2 Using Variable Substitution
Variable substitutions apply a pattern to the content of a variable either from the
left or right side. The following list contains the possible syntax forms:
${VAR#pattern}
removes the shortest possible match from the left:
file=/home/tux/book/book.tar.bz2
echo ${file#*/}
home/tux/book/book.tar.bz2
${VAR##pattern}
removes the longest possible match from the left:
file=/home/tux/book/book.tar.bz2
echo ${file##*/}
book.tar.bz2
${VAR%pattern}
removes the shortest possible match from the right:
file=/home/tux/book/book.tar.bz2
echo ${file%.*}
/home/tux/book/book.tar
${VAR%%pattern}
removes the longest possible match from the right:
file=/home/tux/book/book.tar.bz2
echo ${file%%.*}
/home/tux/book/book
${VAR/pattern_1/pattern_2}
substitutes the content of
VAR
from the
pattern_1
with
pattern_2
:
file=/home/tux/book/book.tar.bz2
echo ${file/tux/wilber}
/home/wilber/book/book.tar.bz2
18.6 Grouping And Combining Commands
Shells allow you to concatenate and group commands for conditional execution. Each
command returns an exit code which determines the success or failure of its operation.
If it is 0 (zero) the command was successful, everything else marks an error which
is specic to the command.
The following list shows, how commands can be grouped:
232 Start-Up