Check out my first novel, midnight's simulacra!

Shell: Difference between revisions

From dankwiki
(Created page with "==IFS== To set IFS to newline, use IFS=$'\n'. This allows <tt>find</tt> output containing horizontal whitespace to be picked up and used in e.g. <tt>for</tt> loop. * If you ca...")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
To set IFS to newline, use IFS=$'\n'. This allows <tt>find</tt> output containing horizontal whitespace to be picked up and used in e.g. <tt>for</tt> loop.
To set IFS to newline, use IFS=$'\n'. This allows <tt>find</tt> output containing horizontal whitespace to be picked up and used in e.g. <tt>for</tt> loop.
* If you can use the output with <tt>xargs</tt>, then just use <tt>find</tt>'s <tt>-print0</tt> predicate and <tt>xargs</tt>'s <tt>-0</tt> option.
* If you can use the output with <tt>xargs</tt>, then just use <tt>find</tt>'s <tt>-print0</tt> predicate and <tt>xargs</tt>'s <tt>-0</tt> option.
==Redirects==
* stderr to pipe, without stdout: <tt>2>&1 >/dev/null |</tt>
==Useful functions==
<syntaxhighlight lang="sh">
isnumber() {
  case "$1" in
    ''|*[!0-9]*) echo "not a number: $1" >&2 ; return 1 ; ;;
    *) return 0
  esac
}
</syntaxhighlight>

Latest revision as of 05:00, 9 November 2022

IFS

To set IFS to newline, use IFS=$'\n'. This allows find output containing horizontal whitespace to be picked up and used in e.g. for loop.

  • If you can use the output with xargs, then just use find's -print0 predicate and xargs's -0 option.

Redirects

  • stderr to pipe, without stdout: 2>&1 >/dev/null |

Useful functions

isnumber() {
  case "$1" in
    ''|*[!0-9]*) echo "not a number: $1" >&2 ; return 1 ; ;;
    *) return 0
  esac
}