Het MacFreak® Forum - Voor online ondersteuning in het Nederlands!

    Het MacFreak® Forum
     Vragen: Programmeren in C(++), Cocoa, Java, BASIC
         Applescript variable gebruiken in bash script
                
Welkom bij Vragen: Programmeren in C(++), Cocoa, Java, BASIC 

      Forum gemodereerd door: Moderator  
  Spring naar onderwerp
« Ouder - Nieuwer »  
Onderwerp met 1 pagina
    

       
fvandijk
Niet Aanwezig




MacFreak Verslaafde
Aantal berichten: 212 | Lid sinds: 31-10-2003 | Geplaatst om: 11:19 - 07-02-2010
Ik wil een ingevoerde variabele vanuit applescript gaan gebruiken in een bash script dat vanuit applescript wordt aangeroepen.

Iemand een suggestie?


set vara to ""
tell application "Finder"
display dialog "Geef variabele in;" default answer vara buttons {"OK"} default button 1
set ordernr to text returned of the result
end tell

do shell script "/bin/tcsh start.sh | tr a-z A-Z"
of
do shell script "/bin/tcsh start.sh"




iPhone 4-32 Gb // MacBook Pro i7 2.66 8Gb 15"HR 7200rpm Momentum XT // iPad 64 Gb 3G // iPod Nano-16 Gb  ®Red // MacBook Air 1.8 SSD // iPod Video 30 Gb // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //
Switcher sinds 17-10-1987

hitchhiker
Niet Aanwezig




Een ware MacFreak!
Aantal berichten: 7820 | Lid sinds: 22-07-2003 | Geplaatst om: 15:40 - 07-02-2010
Gewoon meegeven! Je kunt in Applescript met de tekst doen wat je wilt voordat je die doorgeeft.

do shell script "/bin/tcsh start.sh" & " " & vara as text

bijv.




Don't Panic!

fvandijk
Niet Aanwezig




MacFreak Verslaafde
Aantal berichten: 212 | Lid sinds: 31-10-2003 | Geplaatst om: 23:02 - 07-02-2010
do shell script "/bin/bash /start.sh" & " " & vara as text

Dat is het toch niet als ik het script uitvoer zie ik in mijn scherm Events het volgende:

do shell script "/bin/bash /start.sh 1223" as text


en als ik in mijn shell script een echo $vara geeft dan is deze "




iPhone 4-32 Gb // MacBook Pro i7 2.66 8Gb 15"HR 7200rpm Momentum XT // iPad 64 Gb 3G // iPod Nano-16 Gb  ®Red // MacBook Air 1.8 SSD // iPod Video 30 Gb // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //
Switcher sinds 17-10-1987

BOlle
Niet Aanwezig




MacFreak Verslaafde
Aantal berichten: 625 | Lid sinds: 31-01-2004 | Geplaatst om: 01:15 - 08-02-2010
do shell script "start.sh " & ordernr

Zorg dat start.sh in je $PATH staat. Ik heb een spatie tussen start.sh en de afsluitende " gedaan. Ik weet niet of dat nodig is. Zie ook http://developer.apple.com/mac/library/technotes/tn2002/tn2065.html




Apple Certified System Administrator

fvandijk
Niet Aanwezig




MacFreak Verslaafde
Aantal berichten: 212 | Lid sinds: 31-10-2003 | Geplaatst om: 07:21 - 08-02-2010
Dat is niet de oplossing

do shell script "/bin/sh start.shfietsbel"
Resultaat:
error "/bin/sh: start.shfietsbel: No such file or directory" number 127


Als je de variabele er achter plakt 'plakt' hij hem gewoon aan het commando.

Ik wil gewoon dat de variabele die in Applescript wordt ingevoerd verderop in het aangeroepen shell script bruikbaar is.




iPhone 4-32 Gb // MacBook Pro i7 2.66 8Gb 15"HR 7200rpm Momentum XT // iPad 64 Gb 3G // iPod Nano-16 Gb  ®Red // MacBook Air 1.8 SSD // iPod Video 30 Gb // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //
Switcher sinds 17-10-1987

BOlle
Niet Aanwezig




MacFreak Verslaafde
Aantal berichten: 625 | Lid sinds: 31-01-2004 | Geplaatst om: 09:24 - 08-02-2010

Citaat: fvandijk om 8:21, 8-02-2010


Ik wil gewoon dat de variabele die in Applescript wordt ingevoerd verderop in het aangeroepen shell script bruikbaar is.

Dat kan door in het shell script naar de applescriptvariable als "$1" te verwijzen. Daarmee pakt de shell de eerste meegegeven variable, in mijn voorbeeld is dat ordernr, in jouw laatste voorbeeld is dat fietsbel. Die fietsbel werkt niet, want er mist een spatie tussen start.sh en fietsbel.

"$2" is de tweede meegegeven variable, bijvoorbeeld start.sh variable1 variable2.

Een voorbeeld op basis van je eerste script:

Code:
set vara to ""
tell application "Finder"
display dialog "Geef variabele in;" default answer vara buttons {"OK"} default button 1
set ordernr to text returned of the result
do shell script "/bin/sh bingo " & ordernr
end tell


In het shell script bingo gebruik je dan "$1" om te verwijzen naar het ordernr:
Code:

#!/bin/bash
say the winning number is "$1"





Apple Certified System Administrator

hitchhiker
Niet Aanwezig




Een ware MacFreak!
Aantal berichten: 7820 | Lid sinds: 22-07-2003 | Geplaatst om: 21:41 - 08-02-2010

Citaat: fvandijk om 7:21, 8-02-2010
Ik wil gewoon dat de variabele die in Applescript wordt ingevoerd verderop in het aangeroepen shell script bruikbaar is.



Citaat: fvandijk om 23:02, 7-02-2010
Dat is het toch niet als ik het script uitvoer zie ik in mijn scherm Events het volgende:

do shell script "/bin/bash /start.sh 1223" as text


Ik weet niet wat er fout gaat alsdat die "as text" blijft staan, maar hoe moeilijk is het om te bedenken dat die "as text" er dan misschien af kan/moet?

Je geeft do shell script één (1) string met een valide opdracht. Hoe je die opdracht in elkaar knutselt is jou probleem. Doe je het niet goed, dan krijg je een foutmelding. Als dat over padnamen gaat, dan ligt de fout (zo te zien) aan het shell script. Je hebt niet verteld hoe en wat precies de bedoeling is, dus dit is niet meer dan een educated guess.

Als het je zó niet lukt, maak dan eerst die string met de (beperkte) mogelijkheden die AppleScript daarvoor heeft. Geef die aan Do Shell Script:
Code:
do shell script knutselvariabele

of gebruik de methode-BOlle hierboven.




Don't Panic!

       

Spring naar onderwerp
« Ouder - Nieuwer »
Onderwerp met 1 pagina

MF-Forum v6.0.0 © 2001/2010 - MacFreak® Interactive Media