Bash: hoe maak je een uitvoerbaar script

Ik wil beetje bij beetje artikelen erop zetten SlaanNou, ik heb genoeg materiaal om je beetje bij beetje tips te leren, scripts te maken en nog veel meer, zodat onze dagelijkse taken automatisch verlopen, dus het zal ons duidelijk veel tijd besparen

Nu zal ik je de basis laten zien, wat je altijd moet weten, en dat zal me helpen voor de rest van de tutorials 😉

Hoe maak je een .sh-script?

Simpel ... heel simpel 😀

1. Open een terminal, schrijf daarin het volgende en druk op [Enter]:

cd $HOME && touch script.sh && chmod +x script.sh

Dit is voldoende om een ​​bestand voor hen te maken script.sh in de persoonlijke map.

2. Zet in de terminal het volgende:

cd $HOME && echo '#!/bin/bash' > script.sh && echo '# -*- ENCODING: UTF-8 -*-' >> script.sh

3. Klaar, je hebt je script klaar 😀

Als we het openen, hebben we zoiets als dit:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

Na die tweede regel worden van daaruit de instructies geschreven.

We zullen u bijvoorbeeld vertellen om ons te laten zien in een terminal «<° Linux is het beste»😀

We zouden het script als volgt hebben:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "<° Linux es lo mejor"
exit

Hoe een .sh-script uitvoeren of testen?

1. We moeten naar de map gaan waar het script is, in het vorige voorbeeld zou het onze persoonlijke map zijn, dus we openen een terminal, daarin schrijven we het volgende en drukken op [Enter]:

cd $HOME

2. Nu voeren we het uit door een punt en een schuine streep te plaatsen (gevolgd), gevolgd door de naam van het script, dat wil zeggen:

./script.sh

En bingo, we hebben het al 😀

Doe het en je zult zien ...

Nu een belangrijk detail, aan het einde moeten ze altijd «afrit«

En nu, niets meer toe te voegen, wacht gewoon op toekomstige tutorials, hier leer je het slaan HAHA.

groeten


De inhoud van het artikel voldoet aan onze principes van redactionele ethiek. Klik op om een ​​fout te melden hier.

57 reacties, laat de jouwe achter

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Oscar zei

    Bedankt vriend, ik was altijd nieuwsgierig naar hoe ik een script.sh kon maken, nu is het tijd om te leren, ik wacht op de volgende tutorials.

    1.    KZKG ^ Gaara <"Linux zei

      Nee, een genoegen hehe 😀
      Je zult zien ... beetje bij beetje zal ik Bash-tutorials plaatsen, om te zien of iemand opgewonden raakt, leert en we allemaal beter worden HAHA.

      groeten

      1.    jose zei

        Hallo, ik heb je hulp nodig als je me kunt helpen met een aantal scripts die ik heb vastgelopen en die ik voor een onderwerp moet doen, ik zou graag met me in contact komen.
        Hartelijk dank bij voorbaat

  2.   bruin zei

    Ah sterfelijk !! geweldig 😉

    1.    KZKG ^ Gaara <"Linux zei

      Bedankt 😀
      Onthoud dat klachten of suggesties altijd goed zullen worden ontvangen 😉

  3.   Taregon zei

    Ik vond de post leuk, telkens als ik een scriptkop nodig heb, begin ik met navigeren om alleen de regel: "#! / Bin / bash" in de kop te vinden (ik ben erg vergeetachtig). Nu met deze bijdrage kan ik het laten annoteren en gewoon kopiëren en plakken 😀

    1.    KZKG ^ Gaara <"Linux zei

      Onthoud dat het / bash en / sh is ... het is anders haha, ik heb ooit 2 dagen gevochten met een script dat niet werkte zoals het zou moeten, en het was omdat ik sh in plaats van bash zette

      Eventuele vragen die u ons vertelt.
      groeten

  4.   xfraniux zei

    Jaajajajajaja en dit is de eenvoudigste, je zou ook gedit of een willekeurige editor kunnen openen en kopiëren:

    #!/bin/bash
    # -*- ENCODING: UTF-8 -*-
    echo “<° Linux es lo mejor”
    exit

    En dan geven we het uitvoeringsrechten….

    zeer goede gegevens .. groeten

    1.    KZKG ^ Gaara <"Linux zei

      hehe ja, dat had zo kunnen gebeuren, maar ik weet het niet ... ik dacht dat het eenvoudiger zou zijn om twee regels te kopiëren / plakken (wat eigenlijk één kan zijn) en dat is het, maak het script klaar met uitvoeringsrechten en de header 😀

    2.    Bertholdous zei

      Hallo. Moeten scripts altijd worden opgeslagen als een .sh-bestand?

      In Windows zouden de .bat-bestanden vergelijkbaar zijn. En wat hun schrijven betreft, ze zien er een beetje eenvoudiger uit.

  5.   Lucas Matthias zei

    Zeer goede che

    1.    KZKG ^ Gaara <"Linux zei

      Bedankt 😀

  6.   Arthur Molina zei

    Ik kijk uit naar de volgende post en neem voorlopig nota.

    1.    KZKG ^ Gaara <"Linux zei

      ????
      Eventuele suggesties, script dat ik moet doen of zoiets? 😀

  7.   Moed zei

    Is dit degene die niet kan programmeren? Hoewel het gemakkelijk is, is het programmeren

    1.    KZKG ^ Gaara <"Linux zei

      HAHAHA kom op ... ben je opgewonden? ... leer een beetje Bash, je zult zien hoe geweldig het is, je hoeft niet te weten hoe je moet programmeren, verre van dat 😀

      Wat zeg jij?

      1.    Moed zei

        Ik zal het doen, vandaag ben ik daar niet voor

  8.   anoniem zei

    Als scripts regelmatig moeten worden gemaakt, kan de taak zelf ook worden geautomatiseerd met een script zoals het volgende (het wordt alleen gekopieerd naar $ home / bin / en krijgt uitvoeringsrechten)


    #!/bin/sh
    # nuevoscript
    if [ $# -eq 0]; then
    DEST=$HOME
    SNAME=script.sh
    elif [ $# -eq 1]; then
    DEST=.
    SNAME="$1"
    else
    echo "Parámetros incorrectos"
    exit -1
    fi
    echo -e '#!/bin/bash\n# -*- ENCODING: UTF-8 -*-' > "$DEST/$SNAME" && \
    chmod +x "$DEST/$SNAME"
    echo "Creado el script $DEST/$SNAME"
    exit 0

    Op deze manier, als je rent nieuw script zonder parameters, create $ home / script.sh, maar als het werkt nieuw script ander script, creëert ./otherscript

  9.   Ramses zei

    Hallo vriend, ik zou graag willen weten hoe ik een autorun voor een sdcard kan maken en dat het door mijn telefoon kan worden gelezen met Android en dat wanneer het wordt uitgevoerd, ik abd.exe start plus het commando bugreport> bugreport.txt

    1.    KZKG ^ Gaara zei

      Geen idee vriend ... Ik heb nog nooit Android gebruikt.

  10.   Neo61 zei

    Bedankt Gaara, ik wilde een plek vinden waar ik scripts zou kunnen leren, ik denk dat ik dit in een e-mail aan je heb genoemd, wat echt iets is dat ik moet leren. Ik heb de stappen gevolgd die je beschrijft en alles is perfect, maar het werkt niet, ik krijg dit:

    ./script.sh: regel 5: onverwachte EOF tijdens het zoeken naar een overeenkomend `» '
    ./script.sh: regel 9: syntactische fout: het einde van het bestand werd niet verwacht

    Leg me uit wat mijn blunder is

    1.    KZKG ^ Gaara zei

      Mijn schuld, WordPress verandert enkele details, kijk opnieuw naar de code in het bericht en zet het zo in je script.
      Wat er gebeurt is dat:

      "Asd"

      Het is niet hetzelfde als:
      "asd"

  11.   Neo61 zei

    Ik begrijp het niet, ik zie het nog steeds hetzelfde. Waar is de verandering? Kunt u mij beter uitleggen? Als je het nu uitvoert, wordt deze regel uitgevoerd:
    ./script.sh: line 5: °: Het bestand of de directory bestaat niet

    1.    KZKG ^ Gaara zei

      Geef me het script dat u gebruikt, plaats de code hier: http://paste.desdelinux.net
      Bekijk het bericht opnieuw, het is dat ik was vergeten op de knop Bijwerken 😀 te klikken

  12.   Neo61 zei

    Hallo partner:
    Ik zal je vertellen dat ik naar het conkyrc-script keek dat je voor je conky 2010 hebt gemaakt en als, het waar is, het schijfsymbool behoort tot een bron genaamd Poky, maar het komt niet standaard in libreOffice in Ubuntu 12.04, zou het wees braaf, als je deze bron hebt, vertel me dan waar ik het kan downloaden (echt iets moeilijks), een ding dat ik me heb gerealiseerd is dat wanneer de letters van deze symbolen worden geplaatst en het lettertype niet in de systeem, dan zet het de letter, niet het symbool, het is logisch, ik krijg al een idee van hoe alles werkt, maar ik heb iemand nodig om me dingen uit te leggen om het beter te begrijpen, alles wat ik doe is door deductie en ik heb nooit programmeren gegeven, het was geen computerwetenschap wat ik studeerde En ook, het was een andere keer, ik heb computergebruik als hobby en het goede is dat ik in een van zijn branches werk, alles wat ik heb geleerd is was autodidact, dus mijn interesse in iemand die, zelfs beetje bij beetje, mij leidt. hier is ook het script van mijn conky en ik zal uitleggen wat ik niet snap:

    Kijk, als ik een andere harde schijf probeer te plaatsen, krijg ik nog steeds dezelfde omdat deze dezelfde temperatuurwaarde geeft. Ik krijg de CPU-kenmerken niet in het systeem, het komt er vetgedrukt uit (NULL), wanneer ik probeer de kalender in te voegen die je in de Conky hebt geplaatst, dat tanias in 2010 ongeorganiseerd is en de conky-balk breder maakt. Kijk om alle verbeteringen te zien die u kunt aanbrengen. Ik vind het leuk met de breedte die ik heb en dat je kalender zich aan die breedte aanpast en dat alles wat ik je vertelde dat niet wordt weergegeven eruit komt, hier gaat het:

    http://paste.desdelinux.net/4552

    –Plaats de code in onze plak, zodat de commentaren niet zo uitgebreid zijn–

  13.   GONZALO zei

    de waarheid is dat uw bijdrage te betreuren is

  14.   edgar zei

    Hallo, je hebt mijn leven gemakkelijker gemaakt met dit script. Heel erg bedankt, want ik zou graag willen weten of je me een e-mail kunt sturen waarin je het beschrijft, aangezien ik nieuw ben bij programmeren.
    bedankt

    1.    KZKG ^ Gaara zei

      Hallo,
      Beter heb ik deze regels code niet kunnen beschrijven / uitleggen, wat heb je niet begrepen om op een andere manier uit te leggen?

      Evenzo, als u twijfelt, kunt u dit altijd stellen op ons forum: forum.desdelinux.net

      Groeten 😀

  15.   ophouden zei

    Leuke bijdrage maar je zou het kunnen afronden ... Ik heb een script nodig voor een sai. Dat wil zeggen, wanneer Sai zich realiseert dat hij op de batterij zit en 20 minuten de tijd heeft om uit te schakelen, stuurt hij een signaal naar een apparaat en dat moet het script uitvoeren om sommige servers uit te schakelen. Ik weet niet of ik mezelf goed heb uitgelegd ... Valdria met het invoeren van uw script «shutdown -h» ??

    Dank je wel!

  16.   Jezus Israël Perales Martinez zei

    Iets anders om toe te voegen aan mijn sjabloonmap: B

  17.   Edwar zei

    Kan iemand me helpen? Ik heb een script voor ubuntu nodig dat als we de Chrome-browser sluiten, deze opnieuw opent

    Bij voorbaat bedankt

  18.   edo zei

    Ik heb een script nodig dat door het uit te voeren de informatie van een bestand met een andere tekst overschrijft, weet iemand hoe het is?

    1.    edo zei

      Ik zag hierboven al dat ze zeggen hoe het moet

  19.   Dario zei

    Heel goed, uitstekend voor mijn kleinkinderen.
    Duizendmaal dank. »Je had niet alleen veel jonge mensen, maar als leraren optreden ... zou het geweldig zijn.

  20.   Romeinse pc zei

    Simpel en functioneel, zoals het hoort.

    Bedankt voor het delen.

    Groeten.

  21.   Hernan Jaramillo zei

    Bedankt voor je hulp. Het was een nuttige, heel goede uitleg.

  22.   vicene zei

    Dank je, het heeft me gediend. Proost

  23.   Gamerz zei

    Simpel en effectief. Geweldige tutorial voor de nieuwe 🙂

  24.   Luis Carlos zei

    Hallo, ik weet heel weinig van scripts en ik weet niet of ik begrippen verwarrend ben, maar wat ik probeer te doen is op de volgende webpagina:
    http://beginlinux.com/blog/2010/03/iptables-with-network-card-aliases/

    Het punt is dat ik niet echt begrijp hoe ik deze code moet starten of dat dit de IPTABLES vervangt. En als het zo is, vervangt het het zoals het zou zijn, zodat het automatisch start met het besturingssysteem.

    bedankt

  25.   Cris zei

    Geweldige Gaara !!!

    Ik begon met het huiswerk zoals je het uitlegde en het werkte !! Bedankt voor het nemen van de tijd en het delen van uw kennis om uit de duisternis te komen met de onwetenden.

    ????

  26.   Leeuw zei

    Hallo, ik heb vragen over het maken van een script dat een gebruiker maakt, kunt u me helpen?

  27.   jong zei

    hallo ik heb een vraag met een .sh-bestand
    heb je een manier dat
    Ik heb contact met je opgenomen om te zien of ik het goed doe?

    #! / system / bin / sh
    mount -o opnieuw monteren, rw /
    mkdir /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc
    ln -s /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc /.xbmc
    mount -o opnieuw monteren, ro /

    , Ik voer het handmatig uit in de terminal en als het werkt, maar als ik wil dat het bestand wordt uitgevoerd, wil het niet.

  28.   louis zei

    Ik vond deze op vivaolinux.com.br, het is geweldig

    #! / Bin / bash

    Gebaseerd op Gera.sh - Gera cabeçalho voor scripts

    Geschreven door: Sandro Marcell P. Barbosa (Boa Vista - Roraima)

    E-mail: sandro_marcell@yahoo.com.br

    Slackware GNU / Linux 10.1.0

    Gebruiksvoorbeeld: script_name my_script

    U kunt ook de extensie, conformiteit of tolk specificeren.

    Bijv.: Nome_script backup.sh voor o interpreter 'sh'

    of nome_script backup.tcl voor de 'tcl' interpreter en ook voor vandaag!

    De tolk definiëren die u kunt (vervang een andere!):

    INTERPRETER = »#! / Bin / sh»

    Headerinhoud (verander zoals je wilt!):

    INFO = »##»
    CREATOR = »## Geschreven door:»
    EMAIL = »## E-mail: jij@correo.com»
    DISTRO = »##»

    Controleren of de gebruiker de scriptnaam heeft opgegeven:

    if [$ # -eq 0]; vervolgens
    echo ">>> Gebruik: $ (basisnaam $ 0)"
    afrit
    fi
    if [$ # -ge 2]; vervolgens
    echo "Naam met spaties is niet geldig!"
    afrit
    fi

    Kan de gebruiker naar de huidige directory schrijven?

    als [! -w $ PWD]; vervolgens
    echo "Geen toestemming om de huidige map te schrijven!"
    afrit
    fi

    Wat moet ik doen als er een ander script met dezelfde naam in de huidige directory staat?

    als [-f $ 1]; vervolgens
    echo "Er bestaat al een script met dezelfde naam in deze map!"
    afrit
    fi

    Scripttekst:

    (
    cat << EINDE
    $ INTERPRETER

    $ INFO
    $ CREATOR
    $ EMAIL
    $ DISTRO

    Voeg nu commando's toe in de volgende regels =)

    Aanmaakdatum van dit script: $ (datum «+% a% d /% m /% Y») op $ (datum «+% T»)

    END
    )> $ 1

    Uitvoeringsmachtiging instellen:

    als [-f $ 1]; vervolgens
    chmod + x $ 1 2> / dev / stdout
    echo "Script $ 1 gemaakt en mag worden uitgevoerd!"
    fi

    Aanmaakdatum van dit script: 29/01/2013 19:45:00

    1.    debianistrowler zei

      Geweldig, het werkt perfect !!!

  29.   Vicente zei

    Zeer goede tutorial, eenvoudig en het heeft me veel geholpen, bedankt

  30.   calichi zei

    Beste KZKG Ik ben een nieuweling, maar ik ben geïnteresseerd in leren.
    Je hebt een andere munt. Of plotseling op de plek waar ik werk, wil ik er een openen die is samengesteld en die ik niet kan zien.
    Een idee.

  31.   calichi zei

    Ik heb hulp nodig met een script. Het is samengesteld.

  32.   cool9 zei

    Ik begreep de bash, maar als ik een geautomatiseerde alias wil maken, komt deze er niet uit

  33.   angiesarite zei

    Heel erg bedankt voor je hulpvriend.

    Ik zou graag willen weten of je me een groot plezier kunt doen, ik moet een script maken waarmee ik op een bepaald moment een .sum kan maken, maar ik weet niet hoe ik het moet parametriseren. Misschien kun je me helpen met wat tips. Bedankt en ik zal oplettend zijn als je me kunt helpen.

    groeten

  34.   Jose zei

    Hallo, goedemiddag, kijk, ik doe een klus in lex, dus ik zou graag willen of je me kunt helpen met een script, waarmee ik het lex-bestand kan uitvoeren, het bestand dat lex genereert (lex.yy.c) en het gegevensinvoerbestand .

    heel hartelijk bedankt

  35.   Wilmer Ron zei

    waterkers bedankt doc !!! Ik ben nieuw bij het script. Heel erg bedankt. Groeten Ik zal uitkijken met je nieuwe bijles !!!!

  36.   Karen Vega zei

    Hello!

    Heel erg bedankt voor je bijdragen, ik begin met Unix te beginnen en het komt zelden voor dat iemand dit universum van code op zo'n eenvoudige manier uitlegt. Ik zou u willen vragen of ik met uw procedure een script kan maken waarmee ik n aantal bestanden kan vinden die op hetzelfde pad staan ​​en dat ik ze naar een andere map kopieer ... iemand vertelde me dat ik kan opslaan in een txt het pad en de naam van mijn bestanden, maar het is mij niet duidelijk hoe ik dit moet doen. Ik blijf aandachtig.

    Groeten!

  37.   Eibar Amaya zei

    Hallo, ik heb een VPS, maar ik heb hulp nodig bij sommige dingen orita zelf Ik ben geïnteresseerd in het maken van een script of zoiets, zodat ik een zelfback-up maak van alles wat zich in mijn / root-map bevindt en die back-up wordt elke 1 uur uitgevoerd als ik zou je kunnen helpen dat ik je daarin te veel zou waarderen

    Ik laat je mijn Facebook achter als je me wilt helpen. Ik heb veel hulp nodig 🙂

  38.   Jorge Rodriguez zei

    creëer me een om bepaalde netwerkapparatuur in het bedrijf te pingen en te controleren
    maar ik heb het simpel gemaakt

    tik op rood.sh && chmod + x rood.sh
    gooide uit '# -- CODERING: UTF-8 -- '>> red.sh
    echo 'ping 10.50.0.125 -w 5' >> red.sh
    echo 'ping 10.50.0.80 -w 5' >> red.sh

    voer het uit ./red.sh en prima

  39.   Guillermo zei

    Beste, ik moet een automatisch installatiescript maken. Ik ben bereid te betalen voor een goed stuk werk. Geïnteresseerden kunnen mij een E-mail sturen naar carranzalh@gmail.com. Dank

  40.   sary zei

    ze zuigen mijn pik XD

  41.   hdexz zei

    Goedemorgen vriend, kun je me ergens mee helpen
    Ik moet een back-up maken met linux van het bedrijf omdat het veiliger is, zodat virussen het niet vangen, maar ik weet niet hoe ik ze moet doen
    Ik moet een script maken dat de bestanden inpakt en naar een ftp stuurt

    Ik zou het op prijs stellen om van tevoren naar mijn e-mail te schrijven

    cesarloscor@gmail.com