syntax:pe

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
syntax:pe [2015/12/04 07:15]
fgrose [Quote Nesting] decency
syntax:pe [2019/11/22 19:03] (current)
ersen fix expansion offset and length for substring expansion
Line 78: Line 78:
 __Why does the first one fail?__ It prints nothing, because a parameter (variable) named "''​WORDs''"​ is undefined and thus printed as ""​ (//​nothing//​). Without using braces for parameter expansion, Bash will interpret the sequence of all valid characters from the introducing "''​$''"​ up to the last valid character as name of the parameter. When using braces you just force Bash to **only interpret the name inside your braces**. __Why does the first one fail?__ It prints nothing, because a parameter (variable) named "''​WORDs''"​ is undefined and thus printed as ""​ (//​nothing//​). Without using braces for parameter expansion, Bash will interpret the sequence of all valid characters from the introducing "''​$''"​ up to the last valid character as name of the parameter. When using braces you just force Bash to **only interpret the name inside your braces**.
  
-Also, please remember, that **parameter names are** (like nearly everything in UNIX(r)) **case ​sentitive!**+Also, please remember, that **parameter names are** (like nearly everything in UNIX(r)) **case ​sensitive!**
  
 The second form with the curly braces is also needed to access positional parameters (arguments to a script) beyond ''​$9'':​ The second form with the curly braces is also needed to access positional parameters (arguments to a script) beyond ''​$9'':​
Line 100: Line 100:
 ''​${!PARAMETER}''​ ''​${!PARAMETER}''​
  
-In come cases, like for example+In some cases, like for example
  
 <​code>​ <​code>​
Line 192: Line 192:
     * => ''​THIS IS SOME TEXT''​     * => ''​THIS IS SOME TEXT''​
    * ''​echo "​${array[2]^^}"''​    * ''​echo "​${array[2]^^}"''​
-     * => ''​TEXT''​+     * => ''​SOME''​
  
 ===== Variable name expansion ===== ===== Variable name expansion =====
Line 325: Line 325:
 echo ${MYSTRING/​%x/​y} ​ # RESULT: xxxxxxxxxy</​code>​ echo ${MYSTRING/​%x/​y} ​ # RESULT: xxxxxxxxxy</​code>​
  
-If the replacement part is completely omitted, like, the matches are replaced by the nullstring, i.e. they are removed. This is equivalent to specifying an empty replacement:​+If the replacement part is completely omitted, the matches are replaced by the nullstring, i.e.they are removed. This is equivalent to specifying an empty replacement:​
 <​code>​ <​code>​
 echo ${MYSTRING//​conservative/​} echo ${MYSTRING//​conservative/​}
Line 392: Line 392:
 ==== Using only Offset ==== ==== Using only Offset ====
 In the first form, the expansion is used without a length value, note that the offset 0 is the first character: In the first form, the expansion is used without a length value, note that the offset 0 is the first character:
-<​code>​echo ${MYSTRING:34}</​code>​+<​code>​echo ${MYSTRING:35}</​code>​
 => ''<​del>​Be liberal in what you accept, and </​del>​conservative in what you send''​ => ''<​del>​Be liberal in what you accept, and </​del>​conservative in what you send''​
  
 ==== Using Offset and Length ==== ==== Using Offset and Length ====
 In the second form we also give a length value: In the second form we also give a length value:
-<​code>​echo ${MYSTRING:34:13}</​code>​+<​code>​echo ${MYSTRING:35:12}</​code>​
 => ''<​del>​Be liberal in what you accept, and </​del>​conservative<​del>​ in what you send</​del>''​ => ''<​del>​Be liberal in what you accept, and </​del>​conservative<​del>​ in what you send</​del>''​
  
  • syntax/pe.1449213331.txt
  • Last modified: 2015/12/04 07:15
  • by fgrose