nerdstock.org

PROJECTEN | HANDLEIDINGEN | OVERIGE
Nederlands   English

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
Creative Commons License
http://creativecommons.org/licenses/by-nc-sa/3.0/nl/deed.nl

 


-i *.nerdstock.org/*
Nerds don't google, they grep.

Dannik
http://dannik.nl
OhReally.nl
http://OhReally.nl
Setara
http://setara.org
FaciliPro
http://facilipro.nl
HoudtVan.je
http://www.houdtvan.je
Ads by Nerdstock.org

Link: Op deze site gebruikte handelsmerken