Förenkla script

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Malmö
  • 2010-05-24 03:01

Jag har absolut ingen koll på detta med programering eller script eller något sånt överhuvudtaget. Dock har jag lyckats med att få igång min ventrilo server genom terminal. Men så var jag lite på jakt efter en ikon att trycka på istället för att behöva gå in i terminalen och skriva. Och tänkte rent logiskt att apple-script eller automator borde lösa detta till mig så sökte lite på nätet efter detta.

Hittade då detta script:

tell application "Terminal" --> Start Terminal shell and close window
run
close window 1
end tell

tell application "Terminal" --> Start the Ventrilo server
do script "cd /ventrilo_srv-2.3.1/;./ventrilo_srv" --> make new front window
tell window frontmost
set custom title to "Ventrilo server"
set title displays shell path to false
set title displays custom title to true
end tell
end tell

tell application "System Events"
tell process "Terminal"
keystroke "m" using command down --> Hide window
end tell
end tell

Efter att ha testat lite olika bitar ur detta script så har jag kommit fram till att:

tell application "Terminal"
do script "cd /applications/ventsrv/;./ventrilo_srv"
end tell

Gör jobbet precis likabra. Dock förstår jag att med "set custom title" så får man ett namn på fönstret, men förutom det så ser jag ingen skillnad i vad som händer.

Men sen har jag lärt mig lite halvt, genom en polare som försökt prata HTML med mig, att ibland så finns det sätt som fungerar och det finns sätt som fungerar men ändå är fel sätt.

Så frågan är väll egentligen om det är något "fel" med det sista som blev kvar efter jag hade utforskat scriptet litegrann?

I mitt logiska sinne så är "mindre desto bättre".

  • Medlem
  • 2010-05-27 12:06

Det räcker med denna enda rad i ett applescript som du kan spara som app.

do shell script "cd /applications/ventsrv/;./ventrilo_srv"
  • Medlem
  • International user
  • 2010-07-20 11:22

Är ute efter samma samma sak fast med en teamspeak 3 server. Jag är IQ fiskmås när det kommer till sånt här och fattar inte vad jag gör för fel. Sitter med Terminal Dictionary uppe men fattar fortfarande jota hehe.

Jag måste exekvera 2 rader av sökvägar för att få server'n att rulla.

1. cd /Users/925/Desktop/Teamspeak3-server_mac
2 ./ts3server_mac

Jag har skrivit det här i script editor:

tell application "Terminal"
do script "cd /Users/925/Desktop/Teamspeak3-server_mac"
end tell

- Då går den direkt till den sökvägen vilket den ska göra men lägger jag till en till ./ts3server_mac
via en "do script" så öppnar den en ny terminal och skriver bara det.

Hur skriver jag in "cd /Users/925/Desktop/Teamspeak3-server_mac" (enter) och sedan
./ts3server_mac (enter)

  • Medlem
  • Gävle
  • 2010-07-20 12:57
Ursprungligen av Kenneth M:

Hur skriver jag in "cd /Users/925/Desktop/Teamspeak3-server_mac" (enter) och sedan
./ts3server_mac (enter)

tell application "Terminal"
do script "cd /Users/925/Desktop/Teamspeak3-server_mac; ./ts3server_mac"
end tell

  • Medlem
  • 2010-07-20 11:47
tell application "Terminal"
	do script A
	do script B in tab 1 of window 1
end tell
  • Medlem
  • 2010-07-20 15:42

Creops, kan man enkelt lägga in annan kod mellan snuttarna, tex delay eller slikt?

  • Medlem
  • International user
  • 2010-07-20 16:05

Tackar! Testar när jag kommer hem!

OT: Med andra ord så betyder ; radbyte? Skulle inte scriptet fungera skulle man kunna skriva:
do script "cd /Users/925/Desktop/Teamspeak3-server_mac; delay; ./ts3server_mac"

Har inte en susning om "delay" är ett kommando men det känns som om det måste finnas en delay mellan exekveringarna i sökvägarna. Annars försöker den väl båda 2 samtidigt?

Som sagt... Script o programmering etc är verkligen inte min starka sida... hehe

  • Medlem
  • International user
  • 2010-07-20 16:54
Ursprungligen av Kenneth M:

Har inte en susning om "delay" är ett kommando men det känns som om det måste finnas en delay mellan exekveringarna i sökvägarna.

I shellscript (bash i det här fallet) kan du använda && mellan kommandona. Det betyder att kommandot efter && endast körs om kommandot före har körts utan problem:

do script "cd /Users/925/Desktop/Teamspeak3-server_mac && ./ts3server_mac"

(Läs mer här om du råkar känna dig extranördig.)

  • Medlem
  • 2010-07-20 16:13

Applescript utför ett kommando i taget. Om man vill lägga in en paus för att vänta ut saker kan man på en egen rad skriva "delay 1" för en paus på en sekund.
Hur shellscript fungerar har jag sämre koll på.

  • Medlem
  • International user
  • 2010-07-22 10:55

tell application "Terminal"
do script "cd /Users/925/Desktop/Teamspeak3-server_mac; ./ts3server_mac"
end tell

Fungerade lysande! Tack! Det enda som händer är att den skapar ett nytt terminal fönster bakom den som är intressant! Men det spelar ingen roll. Det enda jag måste lösa nu är faktum att varje gång servern startas (efter omstart av maskinen) så måste man acceptera att man öppnar vissa portar (trycka "ok" i 2 dialogrutor som kommer upp) Misstänker starkt att det är nått som inte går att automatisera?

1
Bevaka tråden