Bash skript

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
elfizz
Inlägg: 60
Blev medlem: 06 jun 2007, 18:52

Bash skript

Inlägg av elfizz »

I min .bashrc så har jag ställt in så att

Kod: Markera allt

 alias torrent="screen -S rtorrent -m rtorrent" 
Men om rtorrent redan då är startad i en screen får jag så felmedelandet
[screen is terminating]

Så då måste jag köra screen -r får att starta rtorrent eller då screen -D -R rtorrent om jag har flera screen öppna.
Kan jag då skriva någon slags if-sats så om screen redan är öppen så kör den det andra kommandot

typ

Kod: Markera allt

if ( om rtorrent inte är startat )
  alias torrent="screen -S rtorrent -m rtorrent"
else
  screen -D -R rtorrent
hur skulle jag skriva den koden i bash?
Användarvisningsbild
Erikw
Inlägg: 158
Blev medlem: 15 jul 2007, 02:57
OS: Open Suse
Utgåva: 22.10 Kinetic Kudu
Ort: Lund, Sverige
Kontakt:

SV: Bash skript

Inlägg av Erikw »

Kan du inte connecta med -x istället för -r så kan du ansluta till samma session flera gånger. Eller vad det inte det du ville göra?
2r.se
"There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft." - Bill Gates
elfizz
Inlägg: 60
Blev medlem: 06 jun 2007, 18:52

SV: Bash skript

Inlägg av elfizz »

Den det fungerar väl bara om det redan är en screen med rtorrent startad. Om det inte är det så vill jag att den ska skapa en.
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: Bash skript

Inlägg av Mekaniserad Apelsin »

Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then
starta rtorrent
else
starta inte rtorrent
fi
More Mekaniserad at http://blippe.se.
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: Bash skript

Inlägg av Konservburk »

Varför använder du inte -DR direkt i ditt alias?

Kod: Markera allt

alias torrent="screen -mDRS rtorrent rtorrent"
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: Bash skript

Inlägg av Konservburk »

Mekaniserad Apelsin skrev: Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then

Kod: Markera allt

if pgrep rtorrent >&-
then
Lite vackrare, men fortfarande samma fulhack.

Om man ska göra den där if-satsen på ett vettigt sätt så vill man
kolla i rtorrents sessions-katalog och se om det finns någon lockfil,
och om det finns, se om processen den pekar på fortfarande lever.
Användarvisningsbild
Mekaniserad Apelsin
Hedersmedlem
Inlägg: 3777
Blev medlem: 27 maj 2006, 12:24
OS: Ubuntu
Ort: Stockholm
Kontakt:

SV: Bash skript

Inlägg av Mekaniserad Apelsin »

Konservburk skrev:
Mekaniserad Apelsin skrev: Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then

Kod: Markera allt

if pgrep rtorrent >&-
then
Lite vackrare, men fortfarande samma fulhack.

Om man ska göra den där if-satsen på ett vettigt sätt så vill man
kolla i rtorrents sessions-katalog och se om det finns någon lockfil,
och om det finns, se om processen den pekar på fortfarande lever.
mm.

I "rtorrent howto"-tråden har jag postat just en sådan...
More Mekaniserad at http://blippe.se.
elfizz
Inlägg: 60
Blev medlem: 06 jun 2007, 18:52

SV: Bash skript

Inlägg av elfizz »

Tack så mycket nu fungerar allt utom en sak. Jag har använt koden.

Kod: Markera allt

if pgrep rtorrent >&- 
        then
                alias torrent="screen -R -D rtorrent"
        else
                alias torrent="screen -S rtorrent -m rtorrent"
fi
Men det fungerar ara första gången man skriver det. Om jag sen bara göra "detached screen" med crl a+d så vill jag kunna skriva torrent igen och få tillbaka den. Så den kör bara if satsen när jag startar terminal jag vill att den ska köras varja gång jag skriver torrent.
elfizz
Inlägg: 60
Blev medlem: 06 jun 2007, 18:52

SV: Bash skript

Inlägg av elfizz »

löste detta genom att skriva if-satsen i ett skript som blev anroppat när man skrev torrent i terminalen istället. Tack så mycket för hjälpen
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

SV: Bash skript

Inlägg av Konservburk »

Varför kör du inte helt enkelt med alla flaggor till screen på en gång?

Kod: Markera allt

alias torrent="screen -R -D -S rtorrent -m rtorrent"
Eller blir det inte som du vill ha det då?
elfizz
Inlägg: 60
Blev medlem: 06 jun 2007, 18:52

SV: Bash skript

Inlägg av elfizz »

Jo det blir det försig, förutom att den första gången man statar så kommer en blank sida upp i någon sekund där det står new screen innan man kom till rtorrent. Så det fungerade. Ville bara lära mig lite mer hur if-satserna i bash fungerade :)
Skriv svar

Återgå till "Terminalforum"