13 September 2013



echo ${name:0:2}
echo ${name:2:2}
echo ${name:-1:2}
echo ${name:-100:2}





    The following definitions are used throughout the rest of this document.
    blank  A space or tab.
    word   A sequence of characters considered as a single unit by the shell.  Also known as a  token.
    name   A  word  consisting  only of alphanumeric characters and underscores, and beginning with an
           alphabetic character or an underscore.  Also referred to as an identifier.
           A character that, when unquoted, separates words.  One of the following:
           |  & ; ( ) < > space tab
    control operator
           A token that performs a control function.  It is one of the following symbols:
           || & && ; ;; ( ) | <newline>


    A parameter is an entity that stores values.  It can be a name, a number, or one  of  the  special
    characters listed below under Special Parameters.  A variable is a parameter denoted by a name.  A
    variable has a value and zero or more attributes.   Attributes  are  assigned  using  the  declare
    builtin command (see declare below in SHELL BUILTIN COMMANDS).


    Substring Expansion.  Expands to up to length characters of parameter starting at the char-
    acter specified by offset.  If length is omitted, expands to  the  substring  of  parameter
    starting  at  the  character specified by offset.  length and offset are arithmetic expres-
    sions (see ARITHMETIC EVALUATION below).  length must evaluate to a number greater than  or
    equal  to  zero.   If  offset evaluates to a number less than zero, the value is used as an
    offset from the end of the value of parameter.  If parameter is @,  the  result  is  length
    positional  parameters  beginning at offset.  If parameter is an array name indexed by @ or
    *, the result is the length members of the array beginning  with  ${parameter[offset]}.   A
    negative  offset  is  taken relative to one greater than the maximum index of the specified
    array.  Note that a negative offset must be separated from the colon by at least one  space
    to avoid being confused with the :- expansion.  Substring indexing is zero-based unless the
    positional parameters are used, in which case the indexing starts at 1.