diff --git a/bash.md b/bash.md index b131cf2206..badd58578d 100644 --- a/bash.md +++ b/bash.md @@ -173,7 +173,7 @@ echo "${str/foo/bar}" # /path/to/bar.cpp ```bash str="Hello world" -echo "${str:6:5}" # "world" +echo "${str:6:5}" # "world" echo "${str: -5:5}" # "world" ``` @@ -183,6 +183,24 @@ base=${src##*/} #=> "foo.cpp" (basepath) dir=${src%$base} #=> "/path/to/" (dirpath) ``` +### Prefix name expansion + +```bash +prefix_a=one +prefix_b=two +echo ${!prefix_*} # all variables names starting with `prefix_` +prefix_a prefix_b +``` + +### Indirection + +```bash +name=joe +pointer=name +echo ${!pointer} +joe +``` + ### Substitution | Code | Description |