Shell Befehle gleichzeitig ausführen und dabei Zwischenschritt machen?

4 Antworten

Warum benutzt Du nicht Modulo-Rechnung um links und rechts zu unterscheiden?

Einfach Zähler hochzählen.

i%2 == 0 geht nach links

i%2 == 1 geht nach rechts

...

Und wenn Du noch mehr Alternativen brauchst, dann eben mod x.

if [ $(($count%2)) == 0 ]; then

So stelle ich mir das vor.

Du kannst auch einfach counter * 200 nach rechts oder links rücken. Dann zählst Du halt counter von 0-1 oder von 0-x ...wie immer Du willst.

Gruß

Noch ist | eine Pipe.

command& schickt das Kommando in den Hintergrund (Lies mal die Anleitungssektion zu: Job Control)

wofür benötigst du da eine Funktion?

schreibe die Befehle doch einfach untereinander. Dafür musst du nicht mal die Kopfzeile #!/bin/bash verwenden.

xpinguin -geometry  +0+0 &
xpinguin -geometry +200+0 &

mache die Datei, in der die beiden Zeilen stehen ausführbar

chmod +x <Dateiname>

und starte sie

./<Dateiname>
Woher ich das weiß:Berufserfahrung – openSuSE seit 1995
Xydru 
Fragesteller
 19.09.2019, 10:56

Mein Ziel ist ja die automatisch an verschiedenen errechneten Stellen einzusetzen und nicht selbst eintippen

0
guenterhalt  19.09.2019, 12:17
@Xydru

die Befehle xpinguin sollen doch in einer Datei stehen und in der kannst du doch auch Rechenoperationen ausführen.

Datei:

let x=0
let y=0
xpinguin -geometry +$x+$y &
let x=$x+300
xpinguin -geometry +$x+$y &

# ende

0

Mit & kannst du ein Programm im Hintergrund ausführen, z.B. in deinem Script:

#!bin/bash
x=0
function pinguin () {
    xpinguin -geometry +$x+0 &  # xpinguin im Hintergrund ausführen
    let x=$x+200
}

pinguin  # einmal tux
pinguin  # und noch einmal tux
iQa1x  18.09.2019, 07:41

Absolut richtig. Die | gibt die Ausgabe des ersten Programmes an das 2. Programm weiter, das willst du in dem Fall nicht.

xeyes -geometry -0-0 &

am Ende noch ergänzen :)

0