csh e zsh têm modificadores de variáveis úteis para lidar com caminhos e nomes de arquivos. Aqui estão as versões do bash:
mypath=/foo/bar/baz.sh
myfile=baz.sh
* em csh: *
$ echo ${mypath:h}
/foo/bar
$ echo ${mypath:t}
baz.sh
$ echo ${myfile:r}
baz
$ echo ${myfile:e}
sh
* em bash: *
$ echo ${mypath%/*}
/foo/bar
$ echo ${mypath##*/}
baz.sh
$ echo ${myfile%.*}
baz
$ echo ${myfile##*.}
sh