Befehl mit unterschiedlichen Parametern mehrmals ausführen
Manche Programme lassen sich nicht mit mehreren Parameter ausführen:
# atacontrol status ar0 ar1 usage: atacontrol <command> args: atacontrol list atacontrol info channel atacontrol attach channel atacontrol detach channel atacontrol reinit channel atacontrol create type [interleave] disk0 ... diskN atacontrol delete array atacontrol addspare array disk atacontrol rebuild array atacontrol status array atacontrol mode device [mode] atacontrol cap device atacontrol spindown device [seconds]
Dies kann mit Hilfe von apply umgangen werden. Im folgenden Beispiel wird zuerst der RAID-Status von ar0, danach von ar1 abgefragt. Durch die -d Option wird nur angezeigt was ausgeführt würde, ohne die Befehle auszuführen:
# apply -d "atacontrol status %1" ar0 ar1 exec atacontrol status ar0 exec atacontrol status ar1 # apply "atacontrol status %1" ar0 ar1 ar0: ATA RAID1 status: READY subdisks: 0 ad4 ONLINE 1 ad6 ONLINE ar1: ATA RAID1 status: READY subdisks: 0 ad5 ONLINE 1 ad7 ONLINE
Im folgenden Beispiel wird mit der -2 Option angegeben, dass jeweils zwei Parameter aus der Liste zusammen ausgeführt werden.
# apply -d -2 cmp a1 b1 a2 b2 a3 b3 exec cmp a1 b1 exec cmp a2 b2 exec cmp a3 b3 # apply -2 cmp a1 b1 a2 b2 a3 b3 a1 b1 differ: char 1, line 1 a2 b2 differ: char 1, line 1 a3 b3 differ: char 1, line 1
Auf FreeBSD ist apply standardmässig im Basissystem vorhanden. Mehr Informationen zu apply findet man in der Manpage apply(1).
Comments
No new comments allowed (anymore) on this post.