10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)
  • Q:
    Bijdrager
    iCreatedTech

    Terminal commando's in script

    Hallo OMT’ers,

    Ik moet vaak een aantal terminal commando’s achter elkaar uitvoeren om een bepaald programma te openen.
    Is er misschien een manier om al deze commando’s te verwerking in een script, dus dat ik met 1 klik al die commando’s in de goeie volgorde uitvoert?
    Het gaat hier over deze commando’s:

    <br />
    cd Documents<br />
    cd Bestanden<br />
    cd Overige<br />
    cd Progamma<br />
    mono Programma.exe<br />
     

    Alvast bedankt!

    Bijdrager
    Koetjesreep

    Via Applescript editor

    Bijdrager
    Waffle ಠ_ಠ

    Een .exe? Moet dit script onder OS X of onder Windows werken? Als het voor Windows is dan zou je VBScript (geloof ik) kunnen gebruiken. Onder OS X gebruik je AppleScript. Voorbeeld in AppleScript:

    <br />
    set filepath to POSIX path of "path:naar:bestand:of:programma.app"<br />
    try<br />
    set command to "open " & quoted form of filepath<br />
    do shell script command<br />
    end try<br />
     
    Bijdrager
    iCreatedTech

    Nee het moet onder OS X werken, gebruik mono om dat .exe bestand uit te voeren!

    Bijdrager
    Waffle ಠ_ಠ

    In dat geval is dit genoeg:

    <br />
    do shell script "cd ~/Documents/Bestanden/Overige/Programma ; mono Programma.exe;"<br />
     

    Pas zonodig maar aan.:wink:

    Bijdrager
    iCreatedTech

    @Waffle Erg bedankt! Scheelt me weer een heleboel werk elke keer.

    Bijdrager
    Jakko Westerbeke

    Wellicht is het handiger als iemand aan je uitlegt hoe met de terminal gewerkt wordt, dan snap je misschien waar je precies mee bezig bent — en hoe het dus ook makkelijker kan:)

    Met cd verander je van map, maar dat hoef je niet in stappen van één map te doen: je kunt net zo goed

    cd Documents/Bestanden/Overige/Progamma

    intikken, dat scheelt je alweer wat werk. Dan: de terminal kan ook aanvullen, dan hoef je niet alles helemaal in te typen. Gewoon de eerste paar letters intypen en dan op de Tab-toets drukken: als wat je ingetypt hebt “uniek” is, wordt aangevuld; zo niet, dan hoor je een piepje. Druk je dan nog een keer op Tab dan krijg je alle mogelijke aanvullingen te zien. Probeer dit maar eens op je eigen computer:

    Dus eerst “cd D” intypen en dan twee keer op Tab drukken. Opletten, en de rest wijst zich vanzelf als het goed is.

    Maar dat ge-cd is eigenlijk helemaal niet nodig, vermoed ik. Je kunt waarschijnlijk net zo goed

    mono Documents/Bestanden/Overige/Progamma/Programma.exe

    doen, dan werkt het ook. En als je dit niet de hele tijd in wilt tikken, maak je een nieuw tekstbestand, daarin zet je dit:

    #! /bin/bash<br />
    mono Documents/Bestanden/Overige/Progamma/Programma.exe

    en dan bewaar je het in je thuismap met bijvoorbeeld as bestandsnaam prog. Open dan de terminal en typ:

    chmod +x ~/prog

    en druk op de Return-toets. Vanaf nu kun je je programma opstarten vanuit de terminal met niet meer dan

    ./prog

    Bijdrager
    iCreatedTech

    @Jakko Westerbeke Wauw erg bedankt voor die uitleg!
    Dat cd change directory betekende wist ik al, maar de rest nog niet!! Heel erg bedankt!

    Bijdrager
    Jakko Westerbeke

    Dan is het belangrijkste dat ik je nu denk ik nog kan vertellen, dat wat ik uitlegde in principe voor de meeste terminalcommando’s opgaat. Als je eenmaal de basis doorhebt is er weinig moeilijks of engs meer aan het werken met de terminal:)

    Bijdrager
    iep

    in aanvulling op Jakko: het kan zelfs nog mooier door het pad waar je mono applicatie in staat als variabele op te nemen. Dat maakt je script wat flexibeler voor toekomstig gebruik en je kunt het voor andere applicaties gebruiken. Leuk om dat zelf eens verder uit te zoeken, leer je ook meteen wat meer over de bash shell die je standaard in OS X hebt (dat is waar Terminal meer werkt kort gezegd).

10 berichten aan het bekijken - 1 tot 10 (van in totaal 10)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.