Bash: Paano gumawa ng isang maipapatupad na script

Nais kong unti-unting maglagay ng mga artikulo Malakas na paloSa gayon, mayroon akong sapat na materyal upang magturo sa iyo ng paunti-unti ng mga tip, gumawa ng mga script, at marami pa, upang ang aming pang-araw-araw na gawain ay awtomatiko, kaya malinaw na makatipid ito sa atin ng maraming oras

Ipapakita ko sa iyo ang mga pangunahing kaalaman, kung ano ang palaging kailangan mong malaman, at makakatulong iyon sa akin sa natitirang mga tutorial 😉

Paano gumawa ng isang .sh script?

Simple ... napaka-simple 😀

1. Magbukas ng isang terminal, dito isulat ang sumusunod at pindutin [Ipasok]:

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

Sapat na ito upang lumikha ng isang file para sa kanila script.sh sa kanyang personal na folder.

2. Sa terminal ilagay ang sumusunod:

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

3. Handa na, handa mo na ang iyong script 😀

Kung bubuksan natin ito, magkakaroon tayo ng tulad nito:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-

Matapos ang pangalawang linya, mula doon nakasulat ang mga tagubilin.

Halimbawa, sasabihin namin sa iyo na ipakita sa amin sa isang terminal «<° Ang Linux ang pinakamahusay»😀

Magkakaroon kami ng script tulad ng sumusunod:
#!/bin/bash
# -*- ENCODING: UTF-8 -*-
echo "<° Linux es lo mejor"
exit

Paano patakbuhin o subukan ang isang .sh script?

1. Dapat kaming pumunta sa folder kung saan naroon ang script, sa nakaraang halimbawa ito ay ang aming personal na folder, kaya binubuksan namin ang isang terminal, dito namin isinusulat ang sumusunod at pinindot [Ipasok]:

cd $HOME

2. Isinasagawa namin ito sa pamamagitan ng paglalagay ng isang punto at isang slash (sinusundan), at sinusundan ng pangalan ng script, iyon ay:

./script.sh

At bingo, mayroon na tayo nito 😀

Gawin ito at makikita mo ...

Ngayon isang mahalagang detalye, sa dulo dapat silang laging ilagay «lumabas«

At maayos ngayon, wala nang magdagdag, maghintay lamang para sa mga tutorial sa hinaharap, dito matututunan mo malakas na palo HAHA.

Regards


Ang nilalaman ng artikulo ay sumusunod sa aming mga prinsipyo ng etika ng editoryal. Upang mag-ulat ng isang pag-click sa error dito.

57 na puna, iwan mo na ang iyo

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Oscar dijo

    Salamat kaibigan, palaging ako ay nagtataka tungkol sa kung paano gumawa ng isang script.sh, oras na upang malaman, maghihintay ako para sa susunod na mga tutorial.

    1.    KZKG ^ Gaara <"Linux dijo

      Nah, isang kasiyahan hehe 😀
      Makikita mo ... unti unti maglalagay ako ng mga tutorial sa Bash, upang makita kung may nasasabik, natututo at lahat tayo ay gumagaling HAHA.

      Regards

      1.    jose dijo

        Kumusta, kakailanganin ko ang iyong tulong kung matutulungan mo ako sa ilang mga script na naipit ko at kailangan kong gawin para sa isang paksa, gusto kong makipag-ugnay sa akin.
        Maraming salamat sa inyo in advance

  2.   pardo dijo

    Ah mortal !! galing 😉

    1.    KZKG ^ Gaara <"Linux dijo

      Salamat 😀
      Tandaan na ang mga reklamo o mungkahi ay palaging tatanggapin nang maayos 😉

  3.   taregon dijo

    Nagustuhan ko ang post, tuwing kailangan ko ng isang header ng script ay nagsimula ako sa pag-navigate lamang upang makita ang linya: "#! / Bin / bash" sa header (Napakamalimutin ko). Ngayon sa kontribusyon na ito maaari ko itong i-anotate at kopyahin at i-paste lamang 😀

    1.    KZKG ^ Gaara <"Linux dijo

      Tandaan na ito ay / bash at / sh ... iba ito haha, minsan akong gumugol ng 2 araw na nakikipaglaban sa isang script na hindi gumagana para sa akin tulad ng dapat, at ito ay dahil inilagay ko ang sh sa halip na bash 😀

      Anumang mga katanungan na sasabihin mo sa amin.
      Regards

  4.   xfraniux dijo

    Jaajajajajaja at ito ang pinakasimpleng, maaari mo ring buksan ang gedit o anumang editor at kopyahin:

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

    At pagkatapos ay binibigyan namin ito ng mga pahintulot sa pagpapatupad ....

    napakahusay na data .. pagbati

    1.    KZKG ^ Gaara <"Linux dijo

      hehe yeah, maaaring magawa ito ng ganito, ngunit hindi ko alam ... Akala ko mas magiging simple ang gumawa ng isang kopya / i-paste ng dalawang linya (na maaaring maging isa) at iyon lang, handa na ang script na may mga pahintulot sa pagpapatupad at header 😀

    2.    Masungit dijo

      Kumusta. Dapat ba laging mai-save ang mga script bilang isang .sh file?

      Sa mga bintana ang katulad nito ay ang .bat file. At tungkol sa kanilang pagsusulat, medyo simple ang hitsura nila.

  5.   Lucas Matias dijo

    Napakahusay che

    1.    KZKG ^ Gaara <"Linux dijo

      Salamat 😀

  6.   arturo molina dijo

    Inaasahan ko ang susunod na post at para sa pansulat na tala.

    1.    KZKG ^ Gaara <"Linux dijo

      ????
      Anumang mga mungkahi, script na nais mong gawin ko o kung ano? 😀

  7.   tapang dijo

    Ito ba ang hindi marunong mag-program? Bagaman madali ito, ito ay ang programa

    1.    KZKG ^ Gaara <"Linux dijo

      HAHAHA halika ... excited ka na ba? ... alamin ang kaunting Bash, makikita mo kung gaano ito kahusay, hindi mo kailangang malaman kung paano mag-program, malayo rito 😀

      Anong masasabi mo?

      1.    tapang dijo

        Gagawin ko, ngayon hindi ako para diyan

  8.   Hindi kilala dijo

    Sa katunayan, kung regular na malilikha ang mga script, ang gawain mismo ay maaari ding awtomatiko ng isang script tulad ng sumusunod (makopya lamang ito sa $ home / bin / at binibigyan ng mga pahintulot sa pagpapatupad)


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

    Sa ganitong paraan, kung tatakbo ka bagong script nang walang mga parameter, lumikha $ home / script.sh, ngunit kung ito ay tumatakbo bagong script ibang script, lumilikha ./otherscript

  9.   Ramses dijo

    Kumusta kaibigan, nais kong malaman kung paano ako makakalikha ng isang autorun para sa isang sdcard at mabasa ito ng aking telepono gamit ang android at kapag naisakatuparan sinisimulan ko ang abd.exe kasama ang command bugreport> bugreport.txt

    1.    KZKG ^ Gaara dijo

      Walang ideya kaibigan ... Hindi pa ako gumagamit ng Android.

  10.   Neo61 dijo

    Salamat Gaara, nais kong makahanap ng isang lugar kung saan maaari akong turuan ng ilang mga script, sa palagay ko sa isang email nabanggit ko ito sa iyo, na talagang isang bagay na kailangan kong malaman. Sinundan ko ang mga hakbang na idetalye mo at ang lahat ay perpekto ngunit hindi ito tumatakbo, nakukuha ko ito:

    ./script.sh: linya 5: Hindi inaasahang EOF habang naghahanap para sa isang katugmang `» '
    ./script.sh: linya 9: error sa syntactic: hindi inaasahan ang pagtatapos ng file

    Ipaliwanag sa akin kung ano ang aking kasalanan

    1.    KZKG ^ Gaara dijo

      Ang aking kasalanan, binago ng WordPress ang ilang mga detalye, tingnan muli ang code sa post at ilagay ito tulad nito sa iyong script.
      Ano ang mangyayari ay iyon:

      "Asd"

      Hindi ito pareho sa:
      "asd"

  11.   Neo61 dijo

    Hindi ko maintindihan, nakikita ko parin ito. Nasaan ang pagbabago? Maaari mo ba akong ipaliwanag nang mas mabuti? Ngayon kapag binigyan mo ito ng pagpapatupad, lalabas ang linyang ito:
    ./script.sh: linya 5: °: Ang file o direktoryo ay wala

    1.    KZKG ^ Gaara dijo

      Ipasa sa akin ang script na iyong pinapatakbo, ilagay ang code dito: http://paste.desdelinux.net
      Tingnan muli ang post, nakalimutan kong i-click ang Update button 😀

  12.   Neo61 dijo

    Kumusta kapareha:
    Sasabihin ko sa iyo na tinitingnan ko ang script ng conkyrc na iyong ginawa para sa iyong conky 2010 at kung, totoo, ang simbolo ng disk ay kabilang sa isang mapagkukunan na tinatawag na Poky ngunit hindi ito dumating bilang default sa libreOffice sa Ubuntu 12.04, mabuti, kung mayroon kang mapagkukunang ito , sabihin sa akin kung saan ko ito mai-download mula sa (isang bagay na medyo mahirap, talaga), isang bagay na napansin ko ay kapag inilagay ang mga titik ng mga simbolong ito at ang font ay hindi umiiral sa system, pagkatapos ay inilalagay nito ang titik, hindi ang simbolo, Ito ay lohikal, nakakakuha na ako ng isang ideya kung paano gumagana ang lahat, ngunit kailangan ko ng isang tao upang ipaliwanag ang mga bagay sa akin upang maunawaan ito nang mas mabuti, lahat ng ginagawa ko ay sa pamamagitan ng pagbawas at hindi pa ako nagbigay ng anumang programa, hindi ito agham sa computer ang pinag-aralan ko At gayundin, ito ay isa pang oras, mayroon akong komputasyon bilang isang libangan at ang magandang bagay ay nagtatrabaho ako sa isa sa mga sangay nito, lahat ng natutunan ko ay itinuro sa sarili, kaya ang aking interes sa isang tao na, kahit pa unti-unti, Gabayan mo ako. narito din ang script ng aking conky at ipapaliwanag ko kung ano ang hindi ko nakukuha:

    Tingnan, kapag sinubukan kong magpasok ng isa pang HDD, nakukuha ko pa rin ang pareho dahil nagbibigay ito ng parehong halaga ng temperatura. Hindi ko nakukuha ang mga katangiang CPU sa system, lalabas ito (NULL) nang naka-bold, kapag sinubukan kong ipasok ang kalendaryo na inilagay mo sa Conky na ang mga tanias noong 2010 ay hindi naayos at pinalalawak ang conky bar. Hanapin upang makita ang lahat ng mga pagpapabuti na maaari mong gawin. Gusto ko ito sa lapad na mayroon ako at na ang iyong kalendaryo ay umaangkop sa lapad na iyon at na ang lahat ng sinabi ko sa iyo ay hindi ipinapakita, narito:

    http://paste.desdelinux.net/4552

    –Lagay ang code sa aming i-paste, kaya ang mga komento ay hindi gaanong malawak–

  13.   GONZALO dijo

    ang totoo ay pinagsisisihan ang iyong kontribusyon

  14.   Edgar dijo

    Kumusta, pinadali mo ang aking buhay sa script na ito. Maraming salamat sa nais kong malaman kung maaari kang magpadala sa akin ng isang email kung saan mo inilalarawan ito dahil ako ay isang nevo sa pag-program.
    Salamat

    1.    KZKG ^ Gaara dijo

      Hello,
      Mas mabuti na hindi ko mailarawan / maipaliwanag ang mga linya ng code na ito, ano ang hindi mo naintindihan na ipaliwanag sa ibang paraan?

      Gayunpaman, kung mayroon kang mga katanungan, maaari kang laging magtanong sa aming forum: forum.desdelinux.net

      Pagbati

  15.   Maghinto dijo

    Magandang kontribusyon ngunit maaari mo itong bilugan ... Kailangan ko ng isang script para sa isang sai. Iyon ay, kapag napagtanto ng Sai na ito ay nasa baterya at may 20 minuto upang i-off, nagpapadala ito ng isang senyas sa isang aparato at dapat na isagawa ang script upang patayin ang ilang mga server. Hindi ko alam kung ipinaliwanag ko ba ng mabuti ang aking sarili ... Valdria sa paglalagay sa iyong script «shutdown -h» ??

    Salamat sa iyo!

  16.   Hesus israel perales martinez dijo

    May iba pang maidaragdag sa aking template folder: B

  17.   edwar dijo

    May makakatulong ba sa akin na kailangan ko ng isang script para sa ubuntu na kung isara namin ang chrome browser, buksan ito muli

    Salamat nang maaga

  18.   edo dijo

    Kailangan ko ng isang script na sa pamamagitan lamang ng pagpapatupad nito ay patungan ang impormasyon ng isang file sa isa pang teksto, mayroon bang nakakaalam kung paano ito?

    1.    edo dijo

      Nakita ko na sa itaas sinabi nila kung paano ito gawin

  19.   Dario dijo

    Napakahusay, mahusay para sa aking mga apo.
    Isang libong salamat. »Tulad ng pagkakaroon mo ng maraming mga kabataan, kumikilos bilang mga guro .... Magaganda.

  20.   Roman PC dijo

    Simple at gumagana, tulad ng dapat.

    Salamat sa pagbabahagi.

    Pagbati.

  21.   Hernan Jaramillo dijo

    Salamat sa iyong tulong. Ito ay kapaki-pakinabang, napakahusay na paliwanag.

  22.   Vicene dijo

    Salamat nagsilbi ito sa akin. Cheers

  23.   Gamerz dijo

    Simple at epektibo. Mahusay na tutorial para sa mga bagong kasal 🙂

  24.   Si Luis Carlos dijo

    Kamusta, kaunti lang ang alam ko tungkol sa mga script at hindi ko alam kung nakalilito ako sa mga konsepto ngunit ang sinusubukan kong gawin ay sa sumusunod na web page:
    http://beginlinux.com/blog/2010/03/iptables-with-network-card-aliases/

    Ang punto ay hindi ko talaga maintindihan kung paano sisimulan ang code na ito o kung pinapalitan nito ang mga IPTABLES. At kung ito ay pinapalitan nito dahil mailalagay ito upang awtomatiko itong magsimula sa OS.

    Salamat

  25.   Cris dijo

    Nakakakilabot na Gaara !!!

    Sinimulan kong gawin ang takdang-aralin tulad ng ipinaliwanag mo at gumana ito !! Salamat sa paglalaan ng oras at pagbabahagi sa mga ignorante ng iyong kaalaman upang makalabas sa kadiliman.

    ????

  26.   Leo dijo

    Kumusta, mayroon akong anumang mga katanungan upang gumawa ng isang script na nilikha ng isang gumagamit, maaari mo ba akong tulungan?

  27.   bata dijo

    hello Mayroon akong isang katanungan sa isang .sh file
    mayroon ka bang paraan na
    Nakipag-ugnay ako sa iyo upang makita kung ginagawa ko ito ng tama?

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

    , Pinapatakbo ko ito nang manu-mano sa terminal at kung ito ay gumagana, ngunit kapag nais kong patakbuhin ang file ay ayaw nito.

  28.   Mahinahon dijo

    Natagpuan ko ang isang ito sa vivaolinux.com.br, mahusay ito

    #! / bin / bash

    Batay sa Gera.sh - Gera cabeçalho para sa mga script

    Isinulat ni: Sandro Marcell P. Barbosa (Boa Vista - Roraima)

    E-mail: sandro_marcell@yahoo.com.br

    Slackware GNU / Linux 10.1.0

    Halimbawa ng paggamit: script_name my_script

    Maaari mo ring tukuyin ang extension, pagsunod o interpreter.

    Hal.: Nome_script backup.sh para sa interpreter na 'sh'

    ou nome_script backup.tcl para sa interpreter na 'tcl' at para din sa araw!

    Pagtukoy sa interpreter maaari mong (kapalit ng isa pa!):

    INTERPRETER = »#! / Bin / sh»

    Nilalaman ng header (baguhin ayon sa gusto mo!):

    INFO = »##»
    CREATOR = »## Isinulat ni:»
    EMAIL = »## E-mail: you@correo.com»
    DISTRO = »##»

    Sinusuri kung tinukoy ng gumagamit ang pangalan ng script:

    kung [$ # -eq 0]; tapos
    echo ">>> Paggamit: $ (basename $ 0)"
    lumabas
    fi
    kung [$ # -ge 2]; tapos
    echo "Ang pangalan na may mga puwang ay hindi wasto!"
    lumabas
    fi

    Maaari bang sumulat ang gumagamit sa kasalukuyang direktoryo?

    kung [! -w $ PWD]; tapos
    echo "Walang pahintulot na isulat ang kasalukuyang direktoryo!"
    lumabas
    fi

    Paano kung may isa pang script na may parehong pangalan sa kasalukuyang direktoryo?

    kung [-f $ 1]; tapos
    echo "Ang isang script na may parehong pangalan ay mayroon na sa direktoryong ito!"
    lumabas
    fi

    Body ng script:

    (
    pusa << WAKAS
    $ INTERPRETER

    $ INFO
    $ CREATOR
    $ EMAIL
    $ DISTRO

    Magdagdag ngayon ng mga utos sa mga kasunod na linya =)

    Petsa ng paglikha ng script na ito: $ (petsa «+% a% d /% m /% Y») sa $ (petsa «+% T»)

    Palikpik
    )> $ 1

    Ang pagtatakda ng pahintulot na magpatupad:

    kung [-f $ 1]; tapos
    chmod + x $ 1 2> / dev / stdout
    echo na nilikha ang "Script $ 1 at pinapayagan na maisagawa!"
    fi

    Petsa ng paglikha ng script na ito: 29/01/2013 19:45:00

    1.    Debianistrowler dijo

      Mahusay, ito ay gumagana nang perpekto !!!

  29.   Vicente dijo

    Napakagandang tutorial, simple at malaki ang naitulong nito sa akin, salamat

  30.   Calichi dijo

    Mahal na KZKG Ako ay isang baguhan, ngunit interesado akong matuto.
    Mayroon kang ibang scrip. O bigla sa lugar kung saan ako nagtatrabaho nais kong buksan ang isa na naipon at hindi ko ito makita.
    Anumang mga ideya.

  31.   Calichi dijo

    Nangangailangan ako ng tulong sa isang script. Ito ay naipon.

  32.   cool9 dijo

    Naintindihan ko ang tungkol sa bash, ngunit kung nais kong gumawa ng isang awtomatikong alias hindi ito lalabas

  33.   angiesarita dijo

    Maraming salamat sa iyong kaibigan na tumutulong.

    Nais kong malaman kung magagawa mo sa akin ang isang malaking pabor, kailangan kong lumikha ng isang script na makakatulong sa akin na lumikha ng isang .sum sa isang tiyak na oras ngunit hindi ko alam kung paano ito i-parameter. Maaari kang makatulong sa akin sa ilang mga payo. Salamat at magiging matulungin ako kung matutulungan mo ako.

    Regards

  34.   José dijo

    Kumusta, magandang hapon, tingnan mo, gumagawa ako ng trabaho sa lex, kaya nais kong matutulungan mo ako sa isang Script, na kung saan maaari kong patakbuhin ang lex file, ang bumubuo ng lex (lex.yy.c) at ang file ng input ng data.

    Maraming salamat sa inyo

  35.   Wilmer Ron dijo

    watercress salamat dok !!! Bago ako sa script salamat maraming salamat pagbati ako ay magbabantay sa iyong bagong pagtuturo !!!!

  36.   Karen vega dijo

    Kamusta!!!

    Maraming salamat sa iyong mga naiambag, nagsisimula akong makasama sa unix at bihirang may nagpapaliwanag sa uniberso ng code sa isang simpleng paraan. Nais kong tanungin ka kung sa iyong pamamaraan maaari akong makagawa ng isang script na makakatulong sa akin na makahanap ng bilang ng mga file na nakatira sa parehong landas, at kinopya ko ang mga ito sa isa pang folder ... may nagsabi sa akin na maaari kong iimbak sa isang txt ang landas at ang pangalan ng aking mga file, ngunit hindi malinaw sa akin kung paano ito gawin. Nanatili akong maasikaso.

    Pagbati!

  37.   Eibar Amaya dijo

    Kumusta mayroon akong isang VPS ngunit kailangan ko ng tulong sa ilang mga bagay na orita sa aking sarili interesado ako sa kung paano lumikha ng isang script o isang bagay upang magpatakbo ako ng isang self backup ng lahat ng nasa loob ng aking / root folder at ang backup na iyon ay tumatakbo bawat 1 oras kung ako makakatulong ka ba sa iyon ay pahalagahan kita ng sobra doon

    Iiwan ko sa iyo ang aking facebook kung nais mong tulungan ako kailangan ko ng maraming tulong 🙂

  38.   Jorge Rodriguez dijo

    lumikha sa akin ng isa upang mai-ping at subaybayan ang ilang mga kagamitan sa network sa kumpanya
    ngunit ginawa ko itong simple

    hawakan ang pula.sh && chmod + x pula.sh
    itinapon '# -- ENCODING: UTF-8 -- '>> pula.sh
    echo 'ping 10.50.0.125 -w 5' >> pula.sh
    echo 'ping 10.50.0.80 -w 5' >> pula.sh

    patakbuhin ito ./red.sh at pagmultahin

  39.   Guillermo dijo

    Mahal, kailangan kong lumikha ng isang awtomatikong script ng pag-install. Handa akong magbayad para sa trabahong mahusay. Sa mga interesado, padalhan ako ng isang E-mail carranzalh@gmail.com. Salamat

  40.   sAry dijo

    sinisipsip nila ang aking titi XD

  41.   Hdexz dijo

    Magandang umaga kaibigan, may maitutulong ka ba sa akin
    Kailangan kong gumawa ng isang backup sa linux ng kumpanya dahil ito ay mas ligtas upang ang mga virus ay hindi mahuli ito ngunit hindi ko alam kung paano gawin ang mga ito
    Kailangan kong lumikha ng isang script na kung saan ay i-pack ang mga file at ipadala ang mga ito sa isang ftp

    Gusto kong pahalagahan nang maaga sumulat sa aking email

    cesarloscor@gmail.com