Script, köra/starta ett Perl script från ett Bash script

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Script, köra/starta ett Perl script från ett Bash script

Inlägg av CirruZZ »

Går det att köra ett Perl script från ett Bash script? Svaret är Ja har jag kommit fram till men jag har lite strul om man sen vill köra Bash scriptet via Crontab, för då körs inte Perl scriptet, men resten i Bash scriptet? Om jag däremot själv direkt i Terminalen kör Bash scriptet så funkar det.

Någon som har någon ide på vad som kan vara fel när det gäller att köra det via Crontab? Kan det ha något med rättigheter på Perl scriptet att göra?

Det jag vill åt är följande. Temperaturen läses och sparas via ett Bash script, grafen däremot genereras av ett Perl script. Nu ville jag att grafen skall genereras när tempen är avläst och därför ville jag köra det graf scriptet (perl) från det första scriptet (Bash).
FredrikS
Tar hemautomation på allvar
Inlägg: 98
Blev medlem: 23 sep 2008, 21:39
Ort: Linköping

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av FredrikS »

Funkade när jag testade.

Mitt bash-script

Kod: Markera allt

#!/bin/sh
'/root/twoaxis.pl'
och början av mitt perl-script:

Kod: Markera allt

root@hunter:~# cat twoaxis.pl
#!/usr/bin/perl
del av min crontab:

Kod: Markera allt

6 * * * * /root/test.sh
Antar att du varit noga med att ge fullständiga pather till allt ?
Annars är väl det den vanliga fällan...
Mäter lite saker i huset i Jägarvallen, Linköping, kan beskådas på http://j23.mine.nu
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av CirruZZ »

Där sa du något... :? Det skumma var ju att det funkade via Terminalen.

Hur som helst, tidigare stod det...

Kod: Markera allt

mk_graph.pl
och jag ändrade till

Kod: Markera allt

'/home/anders/bin/mk_graph.pl'
så funkar det! :D

Tusen TACK för hjälpen!
gflygt
Tar hemautomation på allvar
Inlägg: 101
Blev medlem: 26 jul 2009, 08:24
Ort: Stockholm

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av gflygt »

[quote="CirruZZ"]Där sa du något... :? Det skumma var ju att det funkade via Terminalen.

Det är inte så skumt. crontab har inte den PATH som du har som inloggad i en terminal. Regeln är att alltid skriva sökvägar till de kommandon man inkluderar i script, eller deklarera sökvägar i scripten. Man kan även ange PATH=/bin: etc i crontab

För att göra script generellt körbara är det fiffigt att deklarera alla kommandon med sökvägar i början av ett shellscript. Och sen anropa dom som variabler. Då blir man inte rökt om man glömmer att lägga till en ny sökväg i crontab.

Gunnar

Gunnar
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av CirruZZ »

Smart! Tackar för tipset! :D
Användarvisningsbild
HUSKii
Tar hemautomation på allvar
Inlägg: 270
Blev medlem: 16 jun 2008, 20:08
Ort: Oskarström

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av HUSKii »

CirruZZ skrev:

Kod: Markera allt

'/home/anders/bin/mk_graph.pl'
Gäller samma sätt om man vill köra ett bash script? bara sätta sökvägen tilll scriptet inom ' ' ?
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av CirruZZ »

Bra fråga...testa! :wink:
fredrikw
Gillar hemautomation
Inlägg: 34
Blev medlem: 20 nov 2008, 14:44
Ort: Malmö

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av fredrikw »

HUSKii skrev:
CirruZZ skrev:

Kod: Markera allt

'/home/anders/bin/mk_graph.pl'
Gäller samma sätt om man vill köra ett bash script? bara sätta sökvägen tilll scriptet inom ' ' ?
Ja och nej. Quotes behövs inte om man inte har space i filnamnen (gud förbjude).
Jämför ett shellscript med vad du gör i ditt skal. Vill du köra ett "program" (shellscript, perl, "vanlig binär", whatever) ser man bara till att ha sökvägen korrekt och kör sen på samma sätt. Skillnaden med ett script och att köra interaktivt är att man i scriptfallet ska försäkra sig om att ha rätt sökvägar och eventuella miljövariabler satta (som väl sagts tidigare i tråden). Körs scriptet t.ex. från cron så har man inte samma environment som när man kör det interaktivt.

Ex.

Kod: Markera allt

#!/bin/sh
BINPATH=/home/nisse/mystuff/bin

${BINPATH}/myfancyscript.sh
${BINPATH}/perlgrunka.pl

eller

cd ${BINPATH}
./myfancyscript.sh

Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av CirruZZ »

Bra förklaring :!:
Användarvisningsbild
HUSKii
Tar hemautomation på allvar
Inlägg: 270
Blev medlem: 16 jun 2008, 20:08
Ort: Oskarström

Re: Script, köra/starta ett Perl script från ett Bash script

Inlägg av HUSKii »

Det där var väldigt bra förklarat, det tackar vi för!
Skriv svar