mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Add "find | while" syntax
12
SC2044.md
12
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.
|
||||
|
Reference in New Issue
Block a user