Bash Built-In Variables: Difference between revisions
Jump to navigation
Jump to search
Line 35: | Line 35: | ||
<tt>for</tt> honors the value of IFS (default the space). If you set IFS to something else, for will use that as field separator while iterating over the list. For more details see [[bash_for#for_and_IFS|<tt>for</tt> and <tt>IFS</tt>]] | <tt>for</tt> honors the value of IFS (default the space). If you set IFS to something else, for will use that as field separator while iterating over the list. For more details see [[bash_for#for_and_IFS|<tt>for</tt> and <tt>IFS</tt>]] | ||
Related: | |||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | <blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | ||
:[[bash set#List_Separator|bash <tt>set</tt> List Separator]] | :[[bash set#List_Separator|bash <tt>set</tt> List Separator]] | ||
:[[bash_for#for_and_IFS|<tt>for</tt> and <tt>IFS</tt>]] | |||
</blockquote> | </blockquote> |
Revision as of 00:34, 1 March 2016
External
- bash Internal Variables http://www.tldp.org/LDP/abs/html/internalvariables.html
Internal
Standard Environment Variables
IFS
IFS is the internal field separator. This variable determines how bash recognizes fields (word boundaries) when it interprets character strings. IFS defaults to whitespace (space, tab and newline). This is the proof:
echo "$IFS" | cat -vte ^I$ $
IFS can be changed.
- Note you must set IFS back to whitespace after setting it to something else, so the basic shell function work as expected. This is done as shown below: restoring the default IFS value.
Restoring the default IFS value
IFS="$(printf ' \t\n')"
IFS and for
for honors the value of IFS (default the space). If you set IFS to something else, for will use that as field separator while iterating over the list. For more details see for and IFS
Related: