Shell Parameter Expansion
This one is big so here I go.
${!prefix*}
This one expands the variables whose name starts with the prefix.One thing to note is that '*" is needed as shown below
$ echo ${!H*}
HISTCMD HISTFILE HISTFILESIZE HISTSIZE HOME HOSTNAME HOSTTYPE
$ echo ${!HISTCMD}
echo ${!HISTCMD*}
HISTCMD
${#parameter}
length in characters of the parameter but in case * and @ they refer to number of parameters.
$ cat parameter.sh
#!/bin/bash
echo ${#1}
echo $(#*}
$./parameter.sh abcdefghijklmnopqrstuvwxyz
26
1
${parameter#word}${parameter##word}try to match the word(it can be a pattern) against the parameter at the beginning and if it matches delete the shortest match
$ cat parametermatch.sh
#!/bin/bash
echo ${1#ab*}
echo ${1##ab*}
$ ./parametermatch.sh abcdefghi
cdefghi$
${parameter%word}${parameter%%word}Samething as above but matches and deletes at the end$ ./parametermatch.sh abcdefghi
abcdefg
$ cat parametermatch.sh
#!/bin/bash
echo ${1%*hi}
echo ${1%%*hi}
${parameter/pattern/string}
$ cat parametermatch.sh
#!/bin/bash
echo ${1/pattern/replacepattern}
$ ./parametermatch.sh hipattern
hireplacepattern

0 Comments:
Post a Comment
<< Home