Allt från Computex 2023
Permalänk
Medlem

bash script hjälp!

jag skriver en script som ska starta en textfil då firefox har startats. textfilen måste startas EFTER FIREFOX. tänkte att det skulle vara bra då att checka errorkoden firefox lämnar ifrån sig men den lämnas tydligen bara efter att programmet ÄR STÄNGT.

if firefox ; then
gedit /root/textfil
fi

detta vill jag inte då jag vill att textfilen ska startas direkt efter att firefox startats. hur ska man skriva för det?

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE

Permalänk
Medlem

firefox & gedit /root/textfil

...kommer starta firefox i bakgrunden och fortsätta med nästa kommando direkt. Släng på ett & efter den andra raden så körs scriptet färdigt direkt (och inte när du stänger gedit).

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av peritus

firefox & gedit /root/textfil

...kommer starta firefox i bakgrunden och fortsätta med nästa kommando direkt. Släng på ett & efter den andra raden så körs scriptet färdigt direkt (och inte när du stänger gedit).

tror du missförstod lite eftersom jag förklarade så dåligt jag vill starta textfilen NÄR FIREFOX VÄL ÄR UPPE. det tar ca 2-3 sekunder från att man kör 'firefox' tills fönstret är uppe. kör jag bara:

firefox &
gedit /root/textfil

så startas textfilen innan firefox har hunnit komma igång. och kör jag:

firefox
gedit /root/textfil

så måste jag stänga av firefox-fönstret innan textfilen öppnas. dessa metoderna fungerar alltså inte. jag vill starta textfilen när väl firefox är uppe! någon som kan detta?

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lezz
tror du missförstod lite eftersom jag förklarade så dåligt jag vill starta textfilen NÄR FIREFOX VÄL ÄR UPPE. det tar ca 2-3 sekunder från att man kör 'firefox' tills fönstret är uppe. kör jag bara:

firefox &
gedit /root/textfil

så startas textfilen innan firefox har hunnit komma igång. och kör jag:

firefox
gedit /root/textfil

så måste jag stänga av firefox-fönstret innan textfilen öppnas. dessa metoderna fungerar alltså inte. jag vill starta textfilen när väl firefox är uppe! någon som kan detta?

Kanske något i stil med detta?

#!/bin/bash firefox & until sleep 1; firefox -remote 'ping()'; do :; done gedit /root/textfil

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lefant
Kanske något i stil med detta?

#!/bin/bash firefox & until sleep 1; firefox -remote 'ping()'; do :; done gedit /root/textfil

Kan du förklara lite vad den gör?

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lezz
Kan du förklara lite vad den gör?

http://www.mozilla.org/unix/remote.html

Visa signatur

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Permalänk
Medlem

ok, hittat en bättre lösning! använder mig av wmctrl som kan lista alla aktiva fönsternamn och på så sätt kan jag veta när firefox är uppe. men har problem med att få ihop scriptet då jag inte är så hemsk bra på scripter.

#loopar tills den hittar Google - Mozilla Firefox
while [ "wmctrl -lx | grep --ignore-case 'Google - Mozilla Firefox'" != 0 ]
do
#gör inget
done

gedit /mnt/textfil

som ni märker (om ni märker) så fungerar inte detta script för jag har bara slängt in en massa kommandon som inte fungerar. men försökte visa er ovan hur jag tänkte mig det skulle se ut. kan ni rätta till det så det fungerar och så att jag lär mig hur man skriver?

ps. efter detta ska jag definitivt köpa en bok som lär mig hur man scriptar bättre. det verkar vara bra att kunna. ds.

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Lezz
ok, hittat en bättre lösning! använder mig av wmctrl som kan lista alla aktiva fönsternamn och på så sätt kan jag veta när firefox är uppe. men har problem med att få ihop scriptet då jag inte är så hemsk bra på scripter.

#loopar tills den hittar Google - Mozilla Firefox
while [ "wmctrl -lx | grep --ignore-case 'Google - Mozilla Firefox'" != 0 ]
do
#gör inget
done

gedit /mnt/textfil

som ni märker (om ni märker) så fungerar inte detta script för jag har bara slängt in en massa kommandon som inte fungerar. men försökte visa er ovan hur jag tänkte mig det skulle se ut. kan ni rätta till det så det fungerar och så att jag lär mig hur man skriver?

Jag vet inte vad wmctrl spottar ur sig, men detta skulle kunna fungera:

#loopar tills den hittar firefox-bin until wmctrl -lx | grep -qi firefox-bin do sleep 1 done gedit /mnt/textfil

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av lefant
Jag vet inte vad wmctrl spottar ur sig, men detta skulle kunna fungera:

#loopar tills den hittar firefox-bin until wmctrl -lx | grep -qi firefox-bin do sleep 1 done gedit /mnt/textfil

tack det fungerade! men har bara ett fjuttigt litet problem kvar. kan inte få nedanstående rad att köras som självstänig process dvs att terminalen kör vidare med nästa kommando utan att behöva vänta tills den är avslutad:

gedit /media/fat-lagring/add\ on\ anteckningar.txt
echo det fungerade

men det går inte att lägga till & efteråt för då får jag error message. hur ska man göra? jag behöver alltså köra "echo det fungerade" direkt efter att jag startat första raden.

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE

Permalänk
Medlem

gedit /media/fat-lagring/add\ on\ anteckningar.txt & echo det fungerade

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av NemroD

gedit /media/fat-lagring/add\ on\ anteckningar.txt & echo det fungerade

ojdå. det var när jag hade den efter until som det inte fungerade. glömde att den står ensam nu. MEN VA BRA. ALLT FIXAT! SKÖNT SOM FAN. SOM NI SER PÅ MINA POST-TIDER HAR JAG INTE SOVIT ÄN FÖR DETTA OCH LITE ANNAT LINUX-MOJS. STORT TACK FÖR HJÄLPEN MINA VÄNNER! NU KAN JAG GÅ OCH LÄGGA MIG

Visa signatur

Windows: ClickAndGo
Linux: Write...rewrite...ERROR MESSAGE