diff --git a/SC2044.md b/SC2044.md index 2c37053..61f83bb 100644 --- a/SC2044.md +++ b/SC2044.md @@ -30,6 +30,18 @@ done < <(find mydir -mtime -7 -name '*.mp3' -print0) echo "Played $count files" ``` +> Equivalently: +> +> ```sh +> find mydir -mtime -7 -name '*.mp3' -print0 | while IFS= read -r -d '' file +> do +> let count++ +> echo "Playing file no. $count" +> play "$file" +> done +> echo "Played $count files" +> ``` + In usage it's very similar to the `for` loop: it gets its output from a `find` statement, it executes a shell script body, it allows updating/aggregating variables, and the variables are available when the loop ends. It requires Bash, and works with GNU, Busybox, OS X, FreeBSD and OpenBSD find, but not POSIX find.