Van een commando naar een shell functie
Heb je een prachtig script geschreven, kom je erachter dat je de output van een commando niet naar een shell functie kunt sturen…
#!/usr/bin/env bash
# This script is ~/dashprepender.sh.
# It prepends dashes.
function prependDash() {
input=$@
echo "- ${input}"
}
find ${HOME} -type d -exec prependDash {} \;
rob@freebsd$ ~/dashprepender.sh find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory find: prependDash: No such file or directory …
Of toch wel…?
#!/usr/bin/env bash
# This script is ~/dashprepender.sh.
# It prepends dashes.
function prependDash() {
input=$@
echo "- ${input}"
}
find ${HOME} -type d -print | while read dir; do prependDash ${dir}; done
of
for dir in `find ${HOME} -type d -print`; do
prependDash ${dir}
done
maar bij die laatste kom je in de problemen als er bestandsnamen zijn met een spatie.
| Reacties zijn welkom: rob[at]nerdstock.org |
![]() http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.nl |







