DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(bash.info) Tilde Expansion

Info Catalog (bash.info) Brace Expansion (bash.info) Shell Expansions (bash.info) Shell Parameter Expansion
 
 3.5.2 Tilde Expansion
 ---------------------
 
 If a word begins with an unquoted tilde character (`~'), all of the
 characters up to the first unquoted slash (or all characters, if there
 is no unquoted slash) are considered a TILDE-PREFIX.  If none of the
 characters in the tilde-prefix are quoted, the characters in the
 tilde-prefix following the tilde are treated as a possible LOGIN NAME.
 If this login name is the null string, the tilde is replaced with the
 value of the `HOME' shell variable.  If `HOME' is unset, the home
 directory of the user executing the shell is substituted instead.
 Otherwise, the tilde-prefix is replaced with the home directory
 associated with the specified login name.
 
    If the tilde-prefix is `~+', the value of the shell variable `PWD'
 replaces the tilde-prefix.  If the tilde-prefix is `~-', the value of
 the shell variable `OLDPWD', if it is set, is substituted.
 
    If the characters following the tilde in the tilde-prefix consist of
 a number N, optionally prefixed by a `+' or a `-', the tilde-prefix is
 replaced with the corresponding element from the directory stack, as it
 would be displayed by the `dirs' builtin invoked with the characters
 following tilde in the tilde-prefix as an argument ( The Directory
 Stack).  If the tilde-prefix, sans the tilde, consists of a number
 without a leading `+' or `-', `+' is assumed.
 
    If the login name is invalid, or the tilde expansion fails, the word
 is left unchanged.
 
    Each variable assignment is checked for unquoted tilde-prefixes
 immediately following a `:' or the first `='.  In these cases, tilde
 expansion is also performed.  Consequently, one may use filenames with
 tildes in assignments to `PATH', `MAILPATH', and `CDPATH', and the
 shell assigns the expanded value.
 
    The following table shows how Bash treats unquoted tilde-prefixes:
 
 `~'
      The value of `$HOME'
 
 `~/foo'
      `$HOME/foo'
 
 `~fred/foo'
      The subdirectory `foo' of the home directory of the user `fred'
 
 `~+/foo'
      `$PWD/foo'
 
 `~-/foo'
      `${OLDPWD-'~-'}/foo'
 
 `~N'
      The string that would be displayed by `dirs +N'
 
 `~+N'
      The string that would be displayed by `dirs +N'
 
 `~-N'
      The string that would be displayed by `dirs -N'
 
Info Catalog (bash.info) Brace Expansion (bash.info) Shell Expansions (bash.info) Shell Parameter Expansion
automatically generated byinfo2html