#!/bin/bash echo START # brace expansion echo {John,Betty,Robert}@windriver.com # tidle expansion echo MyDir=~ # command substitution cwd=$(pwd) # straight parameter expansion echo ${cwd} # indirect parameter expansion var=foo foo=bar bar=another echo ${var} # print foo echo ${!var} # print bar # arithmetic expansion var=1 echo $(($var+1)) # print 2 # parameter expansion with default value echo ${var:-default} echo ${uvar:-default} # print default echo ${uvar} # print nothing # parameter expansion with defaul value assigning echo ${uvar:=default} echo ${uvar} # substring expansion ${var:offset:length} echo ${cwd:4} echo ${cwd:4:5} # names mathcing prefix echo ${!v*} # output var # parameter length echo ${#*} echo ${#cwd} # remove matching prefix pattern fake_base_dir=${cwd#/*/} # shortest matching pattern echo ${fake_base_dir} base_dir=${cwd##/*/} # longgest matching pattern echo ${base_dir} # remove matching suffix pattern parent_dir=${cwd%/*} echo ${parent_dir} empty_dir=${cwd%%/*} echo ${empty_dir} # pattern substitution ${para/pattern/string} echo ${cwd/\/*\//SUBSTRING} echo ${cwd/\/*\//} # same effect with ${cwd##/*/} # case modification var='HELLO WORLD hello world' echo ${var^[hello]} echo ${var^^[hello]} echo ${var,[HELLO]} echo ${var,,[HELLO]} echo ${var^^} echo ${var,,} echo END # for more detailed usage, refer to bash manual