Applescript variable gebruiken in bash script
7 februari 2010 - 11:19   
geplaatst door: fvandijk
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 12pro // MacBook Pro 15"-2018 // iPad-Air 4 // iPad-Mini 4 // AppleTV4 // MacMini i5 (2012) // TimeCapsule // iPod Nano-16 Gb  ®Red // MacBook Air (2020) M1 // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //...No i am not addicted to a Apple
Applescript variable gebruiken in bash script
7 februari 2010 - 15:40    reactie #1
geplaatst door: hitchhiker
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.

Applescript variable gebruiken in bash script
7 februari 2010 - 23:02    reactie #2
geplaatst door: fvandijk
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 12pro // MacBook Pro 15"-2018 // iPad-Air 4 // iPad-Mini 4 // AppleTV4 // MacMini i5 (2012) // TimeCapsule // iPod Nano-16 Gb  ®Red // MacBook Air (2020) M1 // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //...No i am not addicted to a Apple
Applescript variable gebruiken in bash script
8 februari 2010 - 01:15    reactie #3
geplaatst door: BOlle
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
Applescript variable gebruiken in bash script
8 februari 2010 - 07:21    reactie #4
geplaatst door: fvandijk
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 12pro // MacBook Pro 15"-2018 // iPad-Air 4 // iPad-Mini 4 // AppleTV4 // MacMini i5 (2012) // TimeCapsule // iPod Nano-16 Gb  ®Red // MacBook Air (2020) M1 // iPod Nano 4 Gb //  iPod Nano 2 Gb // iPod Shuffle (3x) //...No i am not addicted to a Apple
Applescript variable gebruiken in bash script
8 februari 2010 - 09:24    reactie #5
geplaatst door: BOlle

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:

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:


#!/bin/bash
say the winning number is "$1"
Apple Certified System Administrator
Applescript variable gebruiken in bash script
8 februari 2010 - 21:41    reactie #6
geplaatst door: hitchhiker

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:

do shell script knutselvariabele
of gebruik de methode-BOlle hierboven.