Können Sie einen Befehl als Variable an eine andere Funktion übergeben? Wenn ja, wie lautet die Syntax?Einen Befehl als Variable an eine Funktion in Unix übergeben
Mein Code sieht ungefähr so aus.
function1(){
for a in $1
do
echo $a
done
}
function2(){
function1 "ls -lrt folder/Name | grep 'foo' | grep 'bar'"
}
Aber das funktioniert nicht. Ich habe sogar versucht es vorbei wie:
function1 `ls -lrt folder/Name | grep 'foo' | grep 'bar'`
Aber das geht nur der erste Wert des Befehls (und ich verstehe, warum dies geschieht).
Kennt jemand die Syntax, um einen Befehl als Variable zu übergeben?
Wenn Sie 'für ein in $ 1' in' function1' sagen, bedeutet dies, dass Sie gerade den ersten Parameter durchgehen. Wenn Sie alle Parameter durchlaufen wollen, müssen Sie '$ @' verwenden. – fedorqui
Der obige Kommentar ist korrekt, Sie könnten auch einfach die for-Schleife auslassen und einfach 'echo @ a' machen - wenn Sie nur diese eine Zeichenfolge/Funktion übergeben wollen – Vaelor
habe ich es versucht, es funktioniert! Danke vielmals! :) – user2882388