Menene bambanci tsakanin gudanar da rubutun bash ta hanyar amfani da sh da ./

Irin wannan tambayar na iya faruwa yayin amfani da kowane nau'in rubutu, ba kawai na bash ba. Shin akwai babban bambanci tsakanin gudanar da rubutu ta hanyar mai fassara da gudanar da shi kai tsaye?

Mysteryarin asiri wanda zamu bayyana a cikin wannan post ɗin mai ban sha'awa daga Bari muyi amfani da Linux (uL).


Lokacin da kake gudanar da rubutun ta hanyar mika sunan sunan rubutun zuwa mai fassara (sh, python, perl, da dai sauransu), da gaske kana aiwatar da mai fassara ne, kana wucewa shirin da kake son aiwatarwa a matsayin hujja. Misali, muna gudanar da sh mai fassara ta hanyar wucewa da shi bahasin miscript.sh.

sh myscript.sh

Idan kun kunna rubutun da kanta, tsarin zai kira mai fassarar da yake buƙata sannan, a, a, zai aiwatar da rubutun, ya ba da shi azaman hujja ga mai fassara, amma duk ta atomatik kuma ba tare da mai amfani wanda ya aiwatar da rubutun ba.

./makashinsa.sh

Don gudanar da rubutun da kansa, dole ne a cika sharuɗɗa 2:

1) rubutun dole ne ya hada da "bang line". Wannan ita ce layin farko na rubutu, wanda dole ne ya fara da haruffa #! kuma dole ne ka tantance hanyar da mai fassarar yake. Yana da mahimmanci a lura cewa wannan yanayin gaskiya ne ga kowane nau'in rubutun (python, perl, da dai sauransu), ba waɗanda kawai daga bash ba.

Don haka, alal misali, ya kamata rubutunmu ya ƙunshi mai zuwa kamar layi na farko:

#! / bin / bash

2) fayil ɗin dole ne ya aiwatar da izini:

Don ba da izinin aiwatarwa ga rubutunmu, dole ne mu rubuta:

chmod a + x miscript.sh

Shirya, yanzu kawai gudanar dashi kamar haka:

./makashinsa.sh

Ko ta kwafin rubutun zuwa hanyar "ta musamman" wacce ke ba da damar kira a sauƙaƙe. Misali, za mu iya kwafa zuwa / usr / sbin mu gudanar da shi daga koina ba tare da hada da cikakkiyar hanyar da take ba:

Muna kwafa:

sudo cp miscript.sh / usr / sbin / miscript

Muna aiwatarwa:

kuskure

Kamar yadda kake gani, a zahiri abin da ke faruwa a bayan fage ya yi kama da juna a duka al'amuran. Koyaya, ta hanyar haɗa da "bang line", rubutunku zai zama da sauƙin rarrabawa, tunda masu amfani ba za su tuna da hanyar da masu fassara masu mahimmanci suke ba don su iya aiwatar da su. Kammalawa: ainihin abin tambaya ne na ta'aziyya.


20 comments, bar naka

Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Oswaldo Villarroel m

    Na yarda da ku Erpower, duka sigar fassarar da hanyarta suna da canzawa kuma ba tsayayye ba, har ma idan aka yi la'akari da cewa rarraba GNU / Linux ba sune kawai suke amfani da Bash ba (akwai kuma: freeBSD, OpenSolaris, Mac) da yawa daga gare su suna da daban-daban jeri ko hanyoyi.

    Abu mai mahimmanci shine sanin cewa kuna da sassauƙa (kamar yadda kuka ambata) don kunna tare da kira zuwa rubutun, ko dai tare da ./ ko tare da sh (ko python ... da sauransu)

  2.   shi_who_sani@gmail.com m

    Bash shiri ne na kwamfuta wanda aikin sa shine fassara umarni.

    Ya dogara ne da harsashin Unix kuma yana bin POSIX.

    maimakon haka sh shine shirin komputa wanda aikin sa shine fassara umarni.
    Haɗa fasali kamar sarrafa tsari, turawa
    shigarwa / fitarwa, jerin fayil da karatu, kariya,
    sadarwa da yaren umarni don rubuta shirye-shirye ta
    rukuni ko rubutun. Shi ne mai fassara da aka yi amfani da shi a cikin sifofin farko na Unix kuma ya zama daidaitaccen sifa.

  3.   Diana C. m

    Barka dai, Ni dan farawa ne a amfani da rubutun kuma zan so sanin ko wani zai iya taimaka min game da matsalar da nake da ita:

    Ina gudanar da wani shiri da ke bukatar hada da bayanan farko da yawa ta hanyar na’urar kuma na gano cewa ta hanyar rubutun yana yiwuwa a aiwatar da shirin tare da bayanan farko, don kar a sake rubuta shi a kai-a kai lokacin da nake bukatar gudanar da shirin.

    Ban san yadda zan yi ba, don haka idan wani ya taimake ni da wannan zan yi matukar godiya.

  4.   Bari muyi amfani da Linux m

    Duba, ya dogara da wane irin yare ne kake rubuta rubutun a ciki. Koyaya, a kowane hali abin da kuke buƙata shine:

    1) Idan kuna son mai amfani dole ne ya shigar da wannan bayanan duk lokacin da aka aiwatar da rubutun, hanyar da aka fi dacewa ita ce ta canzawa don ɗaukar ƙimar da aka shigar a cikin shigarwar.

    2) Idan har kullun dabi'u ɗaya suke, zaka iya amfani da dindindin.

    3) Wani zaɓi shine yiwuwar cewa rubutunku na iya ɗaukar sigogi.

    Murna! Bulus.

  5.   Bari muyi amfani da Linux m

    Yana da ban sha'awa abin da kuka ambata. An kira shi da nau'i 2: layin shebang ko layin bango kai tsaye. Na ba ku bayanin: http://python.about.com/od/programmingglossary/g/defbangline.htm
    Murna! Bulus.

  6.   @rariyajarida m

    Abin sha'awa, ban taɓa tsayawa don tunani game da wannan dalla-dalla ba. Zai zama mai ban sha'awa ganin ƙarin labarai akan retouching, daga cikinsu shahararren kwafin kwaya don cire kilo na lambar da ba dole ba waɗanda kawai ke can don dacewa da haɓaka saurin tsarin.

  7.   Bari muyi amfani da Linux m

    KO Zan kiyaye wannan a zuciya.
    Murna! Bulus.

  8.   Bari muyi amfani da Linux m

    Ina farin ciki da aiki. Kullum ina kokarin sanya abubuwan da nake tsammanin zasu iya zama mai ban sha'awa da amfani.
    Rungumewa! Bulus.

  9.   Felix Manuel Brito Amarante m

    Duk mai shirya shirye-shirye masu kyawawan halaye suna ƙara "bang line" zuwa layin farko na lambar. A Python ban taɓa mantawa da lambar lamba da layin kara ba.
    #! / usr / bin / python2.7
    # *. * sauyawa = utf-8 *. *

  10.   diex02 m

    Madalla, da fatan za ku iya buga ƙarin bayani game da layin umarni, musamman idan ya zo ga tattarawa ko sakawa daga fayilolin tushe (tar.gz, da sauransu)

  11.   Joe da castro m

    Ban taba jin labarin "bang line" A koyaushe na san shi da Shebang

    http://en.wikipedia.org/wiki/Shebang_%28Unix%29

    gaisuwa

  12.   Jonathan Fernandez m

    bayanin ban sha'awa… na gode!

  13.   eM Say eM m

    Abin birgewa, Na bayyana kaina gaba daya jahilai a cikin shirye-shirye da duk abin da ya shafi rubutu, ban san yadda yake aiki ba, amma na lura cewa wasu suna da wannan taken.

  14.   Mario raimondi m

    Bayanin da ya faru da ni wanda ya shafi wannan sakon: Ina so in girka na'urar iska ta adobe (mai lissafin kura-kurai). Abin da mai saka iska ta Adobe yake yi shine gudanar da rubutun daidai tare da "su" amma a cikin sigar ./ ​​yana tambayarka kalmar sirri. Kamar yadda rubutun ba shi da izinin aiwatarwa, sai aka ƙi izinin, mafita: gudanar da rubutun tare da sh idan ba kwa son canza izini (da sauri fiye da zuwa babban fayil na tmp chmod da duk wannan). A can aka zartar da rubutun, yana kiran adobe mai sakawa da kuma wani abu na malam buɗe ido.

  15.   Ero-Senin m

    Labari mai ban sha'awa! Godiya don taimaka min in ƙara koyo game da na'ura mai kwakwalwa. Bari mu gani idan kun ci gaba da buga labarai kamar waɗannan ^^.
    Ci gaba da shi, wannan babu shakka shafin da na fi so !!

  16.   Kuskure m

    Ya kamata a lura cewa akwai iya zama bambance-bambance tsakanin sigar fassarar da ake amfani da ita. Gudanar da rubutun kai tsaye bisa ga shebang babu wata hanyar da za a iya nuna sigar fassarar da zai yi amfani da ita, wanda zai iya zama dole. Idan kayi amfani da mai fassara a maimakon kuma ka sanya rubutun a matsayin ma'auni, ka san wane sigar yake aiki.

    Misali a Python, idan shebang shine #! / Usr / bin / python2.4 shirin zai aiwatar ba kamar yadda yake ba idan ya kasance #! / Usr / bin / Python2.6 ko kuma idan ya zama #! / Usr / bin / Python (wanda yawanci alama ce ta alama zuwa sigar Python wacce aka girka kuma aka saita ta tsohuwa). Wannan yana faruwa ne saboda Python 2.6 yana da sabbin ayyuka waɗanda ba su wanzu a Python 2.4 ba, don haka rubuta rubutun da ke amfani da wannan aikin da ke nuni da #! / Usr / bin / python shebang zai gaza idan tsarin ya sanya Python 2.4 kawai. Madadin haka, koyaushe kuna iya tilasta rubutun ya yi aiki tare da sigar wasan da kuke so ta hanyar fara shi da "python2.4 /path/al/script.py" ko "python2.6 /path/al/script.py /

    Don rubutun harsashi, akwai kuma bambance-bambance tsakanin bawon da kuke amfani da su, don haka amfani da #! / Bin / sh da #! / Bin / bash na iya samun sakamako daban-daban gwargwadon rubutun. Idan ka rubuta rubutu ta amfani da sifofin da suke wanzu a cikin bash kawai amma suna nuna shebang #! / Bin / sh, rubutunku zai yi aiki a kan Linux (a kan yawancin rarraba / bin / sh alama ce ta alama zuwa bash) amma mai yiwuwa zai gaza a cikin wasu UNIXs inda ba a sanya bash ba ko kuma inda / bin / sh ba alama ce ta alama zuwa / bin / bash ba.

    Hakanan yana da alaƙa da ɗaukar hoto, dole ne a yi la'akari da cewa hanyar da aka nuna a cikin shebang cikakke ce, kuma akwai lokacin da ake shigar da masu fassara a wasu wurare. Misali, abu ne gama gari ka sanya mai fassarar Python a cikin / usr / local / bin / python idan ka zazzage kuma ka tara Python maimakon amfani da kunshin daga rarrabawarka. Idan shebang naku #! / Usr / bin / python, rubutun ba zai yi aiki a kan waɗancan tsarin ba. Don ƙoƙarin guje wa waɗannan matsalolin, zaku iya amfani da shebang "#! / Usr / bin / env python" (ko "#! / Usr / bin / env sh") kamar yadda bayani ya gabata http://en.wikipedia.org/wiki/Shebang_(Unix)#Portability

  17.   Bari muyi amfani da Linux m

    Na gode Jonathan! Kyakkyawan ganin ka yi sharhi!
    Murna! Bulus.

  18.   Antonio m

    Babu inda ba abinda nake so na sani, ko kuma aƙalla ban san yadda zan saka shi a cikin injin binciken ba, ina so in ƙirƙiri wani rubutu wanda saboda wani dalili ne xX ke aiwatar da ƙwarewar umarni ko «su» (misali ne kawai amma akwai shari'un guda 2 da zan iya tunani akai) kuma game da iyawa wani lokacin yakan neme ni da in shiga "yon" ko kuma a "su" sai ya tambaye ni kalmar sirri ... Ina son rubutun ya zabi wadanda Zaɓuɓɓuka ta atomatik ta hanyar wucewa ta ma'auni ko ta amfani da wasu hanyoyin da ba ta sani ba .... Godiya ga kulawa

    1.    bari muyi amfani da Linux m

      Sannu Antonio! Idan matsalarku tana shigar da kalmar wucewa, bana tsammanin akwai mafita. Daidai saboda yana da ma'auni na tsaro, ta yadda ba kowa bane zai iya sanya wani shiri.
      Game da iyawa da kuma sanya a, ina tsammanin za a iya warware shi. Ba na tuna a wannan lokacin ainihin ma'aunin da za a yi amfani da shi, amma kawai gano a cikin shafukan mutumin. Bude m kuma shigar da umarnin: ikon mutum.
      Rungume! Bulus.

  19.   Dauda MM m

    Kyakkyawan matsayi.
    Na fi so musamman -a wannan sakon- an amsa tambaya / shakkar da ta taso a fili kuma a taƙaice.