.. include:: ../header.txt .. _access_var: Accessing Variables =========================== .. index:: accessing variables :title:`Linux for Programmers and Users`, Section 6.3.2 +------------------+-------------------------------------------------------+ | Syntax | Action | +==================+=======================================================+ | $\ *name* | Returns the value of *name*. | +------------------+-------------------------------------------------------+ | ${*name*} | Use this form when the variable name is | | | followed by other characters, for example: | | | ``filename=${file}.txt`` | +------------------+-------------------------------------------------------+ | ${*name-word*} | Returns *name* if set, and *word* otherwise. | +------------------+-------------------------------------------------------+ | ${*name=word*} | Assigns *word* to *name* if *name* is not | | | already set. Returns *name*. | +------------------+-------------------------------------------------------+ | ${#\ *name*} | Returns the length of the value of *name*. | +------------------+-------------------------------------------------------+ | | ${*name#pat*} | Removes the leading *pat* from *name*. The first | | | ${*name##pat*} | form removes the smallest matching pattern, the | | | second form removes the largest matching pattern. | +------------------+-------------------------------------------------------+ | | ${*name%pat*} | Removes the trailing *pat* from *name*. The first | | | ${*name%%pat*} | form removes the smallest matching pattern, the | | | second form removes the largest matching pattern. | +------------------+-------------------------------------------------------+ Some Examples:: $ file=foo $ echo ${file}.txt foo.txt $ b=bar $ echo ${file-$b} --- already set foo $ echo ${bob-$b} --- not set bar $ echo ${bob=wildcat} --- not set, assignment made wildcat $ echo ${bob=jayhawk} --- already set, assignment not made wildcat $ echo ${#bob} --- string length 7 $ echo ${bob#wild} --- remove first part cat $ echo ${bob%cat} --- remove last part wild