Bash: Kiel fari plenumeblan skripton

Mi volas iom post iom surmeti artikolojn BashNu, mi havas sufiĉe da materialo por instrui vin iom post iom konsiloj, krei skriptojn, kaj multe pli, por ke niaj ĉiutagaj taskoj estu aŭtomataj, do evidente ĝi ŝparos al ni multan tempon 😀

Nun mi montros al vi la bazojn, kion vi ĉiam devos scii, kaj tio helpos min por la resto de la lerniloj 😉

Kiel krei .sh-skripton?

Simpla ... tre simpla 😀

1. Malfermu fina stacion, en ĝi skribu la jenon kaj premu [Eniru]:

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

Ĉi tio sufiĉos por krei dosieron por ili skripto.sh en lia persona dosierujo.

2. En la fina stacio metu la jenon:

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

3. Preta, vi havas vian skripton preta 😀

Se ni malfermos ĝin, ni havos ion tian:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

Post tiu dua linio, la instrukcioj estas skribitaj de tie.

Ekzemple, ni diros al vi, ke vi montru nin en fina stacio «<° Linukso estas la plej bona»😀

Ni havus la skripton jene:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "<° Linux es lo mejor"
exit

Kiel ruli aŭ provi .sh-skripton?

1. Ni devas iri al la dosierujo, kie estas la skripto, en la antaŭa ekzemplo ĝi estus nia persona dosierujo, do ni malfermas terminalon, en ĝi ni skribas la jenon kaj premas [Eniru]:

cd $HOME

2. Nun ni ekzekutas ĝin metante punkton kaj oblikvon (sekvita), kaj sekvata de la nomo de la skripto, tio estas:

./script.sh

Kaj bingo, ni jam havas ĝin 😀

Faru ĝin kaj vi vidos ...

Nun grava detalo, fine ili ĉiam metu «eliro«

Kaj nu, nenio pli aldonebla, nur atendu estontajn lernilojn, ĉi tie vi lernos bash HAHA.

salutoj


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

57 komentoj, lasu la viajn

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita per *

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

  1.   oscar diris

    Dankon amiko, mi ĉiam scivolis pri kiel fari script.sh, nun estas tempo por lerni, mi atendos la venontajn lernilojn.

    1.    KZKG ^ Gaara <"Linukso diris

      Nah, plezuro hehe 😀
      Vi vidos ... iom post iom mi metos lernilojn pri Bash, por vidi ĉu iu ekscitiĝas, lernas kaj ni ĉiuj plibonigas HAHA.

      salutoj

      1.    Jozefo diris

        Saluton, mi bezonus vian helpon, se vi povus helpi min pri iuj skriptoj, kiujn mi blokis kaj mi bezonas fari por temo, mi tre ŝatus kontakti min.
        Dankegon anticipe

  2.   pardo diris

    Ha mortulo !! bonega 😉

    1.    KZKG ^ Gaara <"Linukso diris

      Dankon 😀
      Memoru, ke plendoj aŭ sugestoj ĉiam estos bone ricevitaj 😉

  3.   taregon diris

    Mi ŝatis la afiŝon, kiam ajn mi bezonas skriptokapon, mi komencas navigi nur por trovi la linion: "#! / Bin / bash" en la kaplinio (mi tre forgesas). Nun per ĉi tiu kontribuo mi povas komenti ĝin kaj simple kopii kaj alglui 😀

    1.    KZKG ^ Gaara <"Linukso diris

      Memoru, ke ĝi estas / bash kaj / sh ... ĝi estas malsama haha, mi iam pasigis 2 tagojn batalante kun skripto, kiu ne funkciis por mi kiel ĝi devus, kaj estis ĉar mi metis sh anstataŭ bash 😀

      Ajna demandoj, kiujn vi diras al ni
      salutoj

  4.   xfraniux diris

    Jaajajajajaja kaj ĉi tio estas la plej simpla, vi ankaŭ povus malfermi gedit aŭ iun ajn redaktilon kaj kopii:

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

    Kaj tiam ni donas al ĝi ekzekutajn permesojn ....

    tre bonaj datumoj .. salutojn

    1.    KZKG ^ Gaara <"Linukso diris

      hehe jes, tio povus esti farita tiel, sed mi ne scias ... Mi pensis, ke estus pli simple fari kopion / gluon de du linioj (kiuj efektive povas esti unu) kaj jen, preta la skripto kun ekzekutaj permesoj kaj la kaplinio 😀

    2.    Bertoldoza diris

      Saluton. Ĉu skriptoj ĉiam estu konservitaj kiel .sh-dosiero?

      En Windows ĝiaj similaj estus la .bat-dosieroj. Kaj koncerne sian verkadon, ili aspektas iom pli simplaj.

  5.   Lucas Matiaso diris

    Tre bona che

    1.    KZKG ^ Gaara <"Linukso diris

      Dankon 😀

  6.   arthur molina diris

    Mi antaŭĝojas pri la sekva afiŝo kaj momente notas.

    1.    KZKG ^ Gaara <"Linukso diris

      ????
      Ĉu iuj sugestoj, skripto vi volas, ke mi faru aŭ ion similan? 😀

  7.   kuraĝo diris

    Ĉu ĉi tiu estas tiu, kiu ne scias kiel programi? Kvankam ĝi estas facila, ĝi tamen programas

    1.    KZKG ^ Gaara <"Linukso diris

      HAHAHA venu ... ĉu vi estas ekscitita? ... lernu iom da Bash, vi vidos kiom bonega ĝi estas, vi ne bezonas scii kiel programi, malproksime de ĝi 😀

      Kion vi diras?

      1.    kuraĝo diris

        Mi faros, hodiaŭ mi ne celas tion

  8.   anonima diris

    Fakte, se skriptoj kreiĝos regule, la tasko mem povus ankaŭ esti aŭtomatigita per skripto kiel la sekva (ĝi estas nur kopiita al $ home / bin / kaj donitaj ekzekutaj permesoj)


    #!/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

    Tiel, se vi kuras nova skripto sen parametroj, kreu $ hejmo / script.sh, sed se ĝi funkcias nova skripto alia skripto, kreas ./otherscript

  9.   Ramzes diris

    Saluton amiko, mi ŝatus scii kiel mi povas krei aŭtomatan ekzekuton por sdkarto kaj ke ĝi estu legata de mia telefono per tiel android kaj ke kiam ĝi estas ekzekutita mi ekas abd.exe plus la komandon bugreport> bugreport.txt

    1.    KZKG ^ Gaara diris

      Neniu ideo amiko ... Mi neniam uzis Android.

  10.   Neo61 diris

    Dankon gaara, mi volis trovi lokon, kie oni povus instrui al mi iujn skriptojn, mi pensas, ke en retpoŝto mi menciis ĉi tion al vi, kio vere estas io, kion mi devas lerni. Mi sekvis la paŝojn, kiujn vi detaligas, kaj ĉio estas perfekta, sed ĝi ne funkcias, mi ricevas ĉi tion:

    ./script.sh: linio 5: Neatendita EOF dum serĉado de kongrua `» '
    ./script.sh: linio 9: sintaksa eraro: la fino de la dosiero ne estis atendita

    Klarigu al mi, kio estas mia fuŝo

    1.    KZKG ^ Gaara diris

      Mia kulpo, WordPress ŝanĝas iujn detalojn, rigardu denove la kodon en la afiŝo kaj metu ĝin tiel en vian skripton.
      Kio okazas estas tio:

      "Asd"

      Ĝi ne estas la sama kiel:
      "asd"

  11.   Neo61 diris

    Mi ne komprenas, mi ankoraŭ vidas ĝin same. Kie estas la ŝanĝo? Ĉu vi povus pli bone klarigi min? Nun kiam vi donas al ĝi ekzekuti, ĉi tiu linio aperas:
    ./script.sh: linio 5: °: La dosiero aŭ dosierujo ne ekzistas

    1.    KZKG ^ Gaara diris

      Transdonu al mi la skripton, kiun vi uzas, metu la kodon ĉi tie: http://paste.desdelinux.net
      Rigardu la afiŝon denove, estas ke mi forgesis alklaki la butonon Ĝisdatigi 😀

  12.   Neo61 diris

    Saluton partnero:
    Mi diros al vi, ke mi rigardis la conkyrc-skripton, kiun vi kreis por via conky 2010 kaj se, vere, la disko-simbolo apartenas al fonto nomata Poky, sed ĝi ne aperas defaŭlte en libreOffice en Ubuntu 12.04, estus bone, se vi havas ĉi tiun fonton. , diru al mi, de kie mi povas elŝuti ĝin (io iom malfacila, vere), unu aferon, kiun mi rimarkis, estas, ke kiam la literoj de ĉi tiuj simboloj estas metitaj kaj la tiparo ne ekzistas en la sistemo, tiam ĝi metas la literon, ne la simbolon, Estas logike, mi jam ekhavas ideon pri kiel ĉio funkcias, sed mi bezonas iun, kiu klarigu al mi aferojn por pli bone kompreni ĝin, ĉio, kion mi faras, estas per depreno kaj mi neniam donis programon, mi ne komputis tion, kion mi studis Kaj ankaŭ, estis alia tempo, mi havas komputadon kiel ŝatokupo kaj la bona afero estas, ke mi laboras en unu el ĝiaj branĉoj, ĉio, kion mi lernis, estis memlernanto, do mia intereso pri iu, kiu eĉ iom post iom, Gvidu min. jen ankaŭ la skripto de mia kunulo kaj mi klarigos, kion mi ne ricevas:

    Vidu, kiam mi provas enigi alian HDD-on, mi daŭre ricevas la saman, ĉar ĝi donas la saman temperaturan valoron. Mi ne havas la CPU-karakterizaĵojn en la sistemo, ĝi aperas (NULL) en grasa skribo, kiam mi provas enigi la kalendaron, kiun vi metis en la Conky, ke tanias en 2010 malorganizas kaj plilarĝigas la conky-stangon. Rigardu por vidi ĉiujn plibonigojn, kiujn vi povas fari. Mi ŝatas ĝin per la larĝo, kiun mi havas kaj ke via kalendaro adaptiĝas al tiu larĝo kaj ke ĉio, kion mi diris al vi, kiu ne montras, aperas, jen ĝi:

    http://paste.desdelinux.net/4552

    –Enmetu la kodon en nian paston, do la komentoj ne estas tiel ampleksaj–

  13.   GONZALO diris

    la vero estas, ke via kontribuo bedaŭras

  14.   edgar diris

    Saluton, vi faciligis mian vivon per ĉi tiu skripto. Koran dankon pro mi ŝatus scii ĉu vi povas sendi al mi retpoŝton, kie vi priskribas ĝin, ĉar mi estas nova pri programado.
    danke

    1.    KZKG ^ Gaara diris

      saluton,
      Pli bone mi ne povis priskribi / klarigi ĉi tiujn liniojn de kodo, kion vi ne komprenis klarigi alimaniere?

      Same, se vi havas dubojn, vi ĉiam povas demandi en nia forumo: forum.desdelinux.net

      Salutojn 😀

  15.   ĉesu diris

    Bona kontribuo, sed vi povus plenumi ĝin ... Mi bezonas skripton por sai. Tio estas, kiam la Sai rimarkas, ke ĝi havas baterion kaj havas 20 minutojn por malŝalti, ĝi sendas signalon al aparato kaj tio devas ekzekuti la skripton por malŝalti iujn servilojn. Mi ne scias, ĉu mi bone klarigis min ... Valdria kun enmetado de via skripto «fermo -h» ??

    Dankon !!

  16.   Jesuo israela perales martinez diris

    Io alia por aldoni al mia ŝablona dosierujo: B

  17.   Eduardo diris

    Ĉu iu povus helpi min, mi bezonas skripton por Ubuntu, ke se ni fermos la Chrome-retumilon, malfermu ĝin denove

    Antaŭdankon

  18.   edo diris

    Mi bezonas skripton, kiu nur plenumante ĝin anstataŭigos la informojn de dosiero kun alia teksto, ĉu iu scias kiel ĝi fartas?

    1.    edo diris

      Mi jam vidis, ke supre ili diras kiel fari ĝin

  19.   Dario diris

    Tre bone, bonege por miaj nepoj.
    Mil dankojn. »Tiel kiel vi havis multajn junulojn, agante kiel instruistoj ... ĝi estus mirinda.

  20.   Roma komputilo diris

    Simpla kaj funkcia, kiel ĝi devas esti.

    Dankon pro dividado.

    Salutojn.

  21.   Hernan Jaramillo diris

    Dankon pro via helpo. Ĝi estis utila, tre bona klarigo.

  22.   vicene diris

    Dankon, ke ĝi servis min. Saluton

  23.   Gamerz diris

    Simpla kaj efika. Bonega lernilo por novuloj 🙂

  24.   Ludoviko Karlo diris

    Saluton, mi scias tre malmulte pri skriptoj kaj mi ne scias, ĉu mi konfuzas konceptojn, sed kion mi provas fari estas en la sekva retpaĝo:
    http://beginlinux.com/blog/2010/03/iptables-with-network-card-aliases/

    La afero estas, ke mi ne vere komprenas kiel komenci ĉi tiun kodon aŭ se ĉi tio anstataŭas la IPTABLES. Kaj se ĝi anstataŭas ĝin kiel ĝi estus metita tiel ke ĝi aŭtomate komenciĝas per la OS.

    danke

  25.   Cris diris

    Terura Gaara !!!

    Mi komencis fari la hejmtaskon kiel vi klarigis kaj ĝi funkciis !! Dankon, ke vi prenis la tempon kaj dividis viajn sciojn por eliri el la mallumo kun la malkleruloj.

    ????

  26.   leo diris

    Saluton, mi havas demandojn por krei skripton kreitan de uzanto, ĉu vi povus helpi min?

  27.   giovani diris

    saluton mi havas demandon kun .sh-dosiero
    ĉu vi havas iel
    Mi kontaktis vin por vidi ĉu mi faras ĝin ĉu ne?

    #! / system / bin / sh
    monto -o remunti, rw /
    mkdir /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc
    ln -s /mnt/local/Android/data/org.xbmc.xbmc/files/.xbmc /.xbmc
    monto -o remonta, ro /

    , Mi lanĉas ĝin permane en la terminalo kaj se ĝi funkcias, sed kiam mi volas, ke la dosiero ruliĝu, ĝi ne volas.

  28.   Louis diris

    Mi trovis ĉi tiun ĉe vivaolinux.com.br, ĝi bonegas

    #! / bin / bash

    Surbaze de Gera.sh - Gera cabeçalho por skriptoj

    Verkita de: Sandro Marcell P. Barbosa (Boa Vista - Roraima)

    Retpoŝto: sandro_marcell@yahoo.com.br

    Slackware GNU / Linukso 10.1.0

    Uzokutimo: skripto-nomo mia-skripto

    Vi ankaŭ povas specifi la etendon, konformecon aŭ interpretiston.

    Ekz.: Nome_script backup.sh por interpretisto 'sh'

    ou nome_script backup.tcl por la 'tcl' interpretisto kaj ankaŭ por la tago!

    Difinante la interpretilon vi povas (anstataŭigi alian!):

    INTERPRETISTO = »#! / Bin / sh»

    Titola enhavo (ŝanĝu laŭplaĉe!):

    INFO = »##»
    KREANTO = »## Verkita de:»
    Retpoŝto = »## Retpoŝto: vi@correo.com»
    DISTRO = »##»

    Kontrolante ĉu la uzanto specifis la skriptan nomon:

    se [$ # -ek 0]; tiam
    eoo ">>> Uzado: $ (baznomo $ 0)"
    eliro
    fi
    se [$ # -ge 2]; tiam
    echo "Nomo kun spacoj ne validas!"
    eliro
    fi

    Ĉu la uzanto povas skribi al la aktuala dosierujo?

    se [! -w $ PWD]; tiam
    echo "Neniu permeso skribi la nunan dosierujon!"
    eliro
    fi

    Kio se estas alia skripto kun la sama nomo en la nuna dosierujo?

    se [-f $ 1]; tiam
    echo "Skripto kun la sama nomo jam ekzistas en ĉi tiu dosierujo!"
    eliro
    fi

    Skripta korpo:

    (
    kato << FINO
    $ INTERPRETISTO

    $ INFO
    $ KREANTO
    $ Retpoŝto
    $ DISTRO

    Nun aldonu komandojn sur postaj linioj =)

    Kreodato de ĉi tiu skripto: $ (dato «+% a% d /% m /% Y») ĉe $ (dato «+% T»)

    FIN
    )> $ 1

    Agordo plenumi permeson:

    se [-f $ 1]; tiam
    chmod + x $ 1 2> / dev / stdout
    echo "Skripto $ 1 kreita kaj permesita plenumi!"
    fi

    Kreodato de ĉi tiu skripto: 29/01/2013 19:45:00

    1.    debianistrowler diris

      Bonege, ĝi funkcias perfekte !!!

  29.   Vincent diris

    Tre bona lernilo, simpla kaj ĝi multe helpis min, dankon

  30.   calichi diris

    Kara KZKG Mi estas novulo, sed mi interesiĝas lerni.
    Vi havas alian saketon. Aŭ subite en la loko, kie mi laboras, mi volas malfermi unu kompilitan kaj mi ne povas vidi ĝin.
    Iu ajn ideo.

  31.   calichi diris

    Mi postulas helpon kun skripto. Ĝi estas kompilita.

  32.   malvarmeta9 diris

    Mi komprenis pri la bash, sed se mi volas fari aŭtomatan kaŝnomon ĝi ne aperas

  33.   angiesarito diris

    Koran dankon pro via helpamiko.

    Mi ŝatus scii, ĉu vi povas fari al mi grandan favoron, mi bezonas krei skripton, kiu helpas min krei .sumon en certa tempo, sed mi ne scias kiel parametri ĝin. Eble vi povos helpi min pri kelkaj montriloj. Dankon kaj mi estos atenta se vi povas helpi min.

    salutoj

  34.   Jozefo diris

    Saluton, bonan posttagmezon, rigardu, mi faras laboron en lex, do mi ŝatus se vi povas helpi min per Skripto, per kiu mi povas ekzekuti la lex-dosieron, tiun, kiu generas lex (lex.yy.c) kaj la datuman enigan dosieron. .

    Multan dankon

  35.   wilmer ron diris

    akvokreso dankon dok !!! Mi estas nova pri la skripto dankegon, mi atendos vian novan instruadon !!!!

  36.   Karen vega diris

    Saluton !!!

    Koran dankon pro viaj kontribuoj, mi komencas en Unikso kaj malofte iu eksplikas ĉi tiun koduniverson tiel simple. Mi ŝatus demandi vin, ĉu per via procedo mi povas fari skripton, kiu helpas min trovi n nombron da dosieroj, kiuj loĝas en la sama vojo, kaj ke mi kopias ilin al alia dosierujo ... iu diris al mi, ke mi povas konservi en txt la vojon kaj la nomon de miaj dosieroj, sed al mi ne estas klare kiel fari ĝin. Mi restas atenta.

    Salutoj !!

  37.   eibar amaya diris

    Saluton, mi havas VPS, sed mi bezonas helpon en iuj aferoj. Mi interesiĝas pri kiel krei skripton aŭ ion tiel, ke mi ekzekutu memkopion de ĉio, kio estas ene de mia / radika dosierujo, kaj tiu sekurkopio funkcias ĉiun 1 horon, se mi ĉu vi povus helpi en tio, mi tro dankus vin en tio

    Mi lasas al vi mian facebook se vi volas helpi min mi bezonas multan helpon 🙂

  38.   jorge rodriguez diris

    kreu min por pingi kaj kontroli iujn retajn ekipaĵojn en la kompanio
    sed mi simpligis ĝin

    tuŝu red.sh && chmod + x red.sh
    forĵetis '# -- ĈIFRADO: UTF-8 -- '>> red.sh
    echo 'ping 10.50.0.125 -w 5' >> red.sh
    echo 'ping 10.50.0.80 -w 5' >> red.sh

    rulu ĝin ./red.sh kaj bone

  39.   Vilhelmo diris

    Kara, mi bezonas krei aŭtomatan instalan skripton. Mi pretas pagi por bone farita laboro. Tiuj, kiuj interesiĝas, sendu al mi retpoŝton al carranzalh@gmail.com. Dankon

  40.   sario diris

    ili suĉas mian kokon XD

  41.   hdexz diris

    Bonan matenon amiko, ĉu vi povus helpi min pri io
    Mi bezonas fari sekurkopion kun Linux de la kompanio, ĉar ĝi estas pli sekura por ke virusoj ne kaptu ĝin, sed mi ne scias kiel fari ilin
    Mi bezonas krei skripton, kiu pakos la dosierojn kaj sendos ilin al ftp

    Mi dankus anticipe skribi al mia retpoŝto

    cesarloscor@gmail.com