Yenza ezakho iincwadi zeempendulo usebenzisa i-bash

Ukufunda iLinux

Ngaphandle kokuhanjiswa kweLinux esiyisebenzisayo, ngokungathandabuzekiyo into endiyithandayo nguBuntu― nje ukuba singene ekusebenziseni le nkqubo, ngokuqinisekileyo iimfuno ezizenzekelayo. Oko kukuthi: yenza eyethu eyakho imiyalelo abenza imiyalelo ethile ngendlela elungiselelwe wena. Esi sidingo sinokubangelwa zizizathu ezithile:

  • Yenza lula i-syntax yemiyalelo esihlala siyenza.
  • Thatha amanyathelo agubungela nayiphi na need ezingabonwayo kwangaphambili kwinkqubo ukusebenza.
  • Ulandelelwano lwemiyalelo ukuba ngokuqinisekileyo siyaphinda.

Nangona iskripthi sebash sinokuqhutywa ngaphakathi / nakwesiphi na isikhombisi, kuhlala kunjalo yenza isikhombisi sokubamba ezi skripthi. Kwimeko yam:

$ mkdir /home/pedro/.bin

Ndiyakholelwa oku umkhombandlela (ofihliweyo ngokukhokela ixesha eliphambi kwegama) ukubamba zonke iincwadi zeempendulo endizisebenzisayo apho. Ukuba igama lesikhangeli lifihliwe alikho enye intsingiselo ngaphandle - ngaphandle kokuba kuchazwe ngenye indlela-- ayizukuvela xa ujonga / ekhaya / kwi-pedro evela kumbukeli wefayile kwimowudi yemizobo.

Ngoku kufuneka Yazisa iLinux ukuba kufuneka ijonge apho (/home/pedro/.bin) ii-odolo ezenziweyo ukusuka kwisiphelo sendlela.

$ PATH=$PATH;/home/pedro/.bin

Ngale ndlela inkqubo iya kujonga iiodolo zethu apho side sivale iseshoni. Ukwenza lo mbutho ube sisigxina:

$ sudo nano /etc/environment

kwaye siyongeza

:/home/pedro/.bin

Ekupheleni komgca we-PATH, kubaluleke kakhulu ukuba ungalibali ikholoni ngaphambi kwedilesi yolawulo esilubandakanyayo, kuba le yindlela yokongeza.

Isikripthi samanyathelo ngamanyathelo ethu sokuqala

Senza ifayile yethu, ngoluhlobo lwam:

$ touch ~/.bin/donde

Ukuyihlela, ungasebenzisa umhleli owuthandayo okanye ulandele lo mqondiso:

$ gedit ~/.bin/donde &

Kwaye sidibanisa umxholo olandelayo:

#!/usr/bin/env bash

if [ $# -lt 1 ];
then
    echo "Necesitas pasar un parámetro"
else
    whereis $1
fi

Uhlalutyo lweskripthi

Umnxeba wokuqala wokuqala «Shebang»(#! / Usr / bin / env bash) buza iLinux ukuba inike ingxelo iphi indawo ye-bash shell? kwaye oku kulandelayo kwenziwa ngokweemfuno zebash. Le nyathelo Kulula ukuqinisekisa ukuba izikripthi zethu zisebenza kulo naluphi na ufakelo. Enye into enokwenzeka Shebang wahleka:

#!/bin/bash

Umahluko phakathi kwabo unokuba yinto engaqhelekanga, kwaye ndiza kuyicacisa. Okokugqibela Ndicinga ukuba kwinkqubo yethu i-bash shell ikwidilesi ye-bin / bash. Nangona kunjalo, apho ndicebisa kwiskripthi Ndiyaqonda andiyazi ukuba iphi itoliki yetsh. Ndicela inkqubo ukuba abonelele ngale dilesi.

Umgca wesithathu: Njengoko ubona, umgca wesibini ngu- if. Ngokubhala abalinganiswa «$#« iqulethe inani leeparameter esigqithayo ukusuka kumgca wokuyalela. Ke ngoko, »ukuba [$ # -lt 1];» Ngokwenene lithetha "ukuba inani leeparamitha lingaphantsi kwe-1".

Umgca wesine: ngelo xesha (Ngokwenyani ukuguqulela ukusuka esiNgesini: emva koko), apha kubonisiwe ukuba yintoni elandelayo iya kwenziwa xa kuvavanywa imeko if yinyaniNgamanye amagama, inani leeparamitha lingaphantsi kwe-1, oko kukuthi, zero.

Umgca wesihlanu: Ukuba senza iskripthi sethu ngaphandle kweeparameter, siya kubonisa kwisiphelo sendlela «Kuya kufuneka upase ipharamitha».

Umgca wesithandathuIbonisa ukuba oku kulandelayo kuya kwenziwa xa imeko esiyibhengezileyo ingeyonyani.

Umgca wesixhenxe: Se sebenzisa umyalelo «iphi i« sikhatshwa ngumxholo esiwupasileyo njenge ipharamitha yokuqala.

Umgca wesibhozo: nge «fi»Ibonisa ukuba ibhloko iyaphela if.

Ukuvavanya iSkripthi sethu

Kubalulekile yongeza iimvume zokubhala Iskripthi:

$ chmod -x ~/.bin/donde

Ngaphandle koku, impazamo "yemvume yokulahlwa" iya kuvela.. Emva koko, sinokuqhuba iskripthi sethu.

$ donde php

Kuya kufuneka isibonise indawo ye-php binaries, iifayile zomthombo kunye namaphepha abantu. Into enjalo:

php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php 
/usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache 
/usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz

Ukuphinda ubhale

  • Senza ukuba ifayile ye- ulawulo ".bin" lokugcina izikripthi zethu.
  • Sinikezela Ulwazi kwiLinux ukubandakanya esi sikhombisi ekukhangekeni komyalelo.
  • Senza iskripthi sethu.
  • Umahluko phakathi eyahlukileyo Shebang.
  • Ukusetyenziswa kwe inani leeparamitha ezidluliswe nge $ #.
  • Ukusetyenziswa kwe ipharamitha yokuqala nge $1.

Ndiyathemba kwaye ndinqwenela ukuba lo mbhalo uluncedo kuwe.


Izimvo ezi-4, shiya ezakho

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   Miguel sitsho

    Ilungile kwaye ichazwe kakuhle, kodwa ibhekisa kwintoni ipharamitha?

    1.    U-Pedro Ruiz Hidalgo obambe umfanekiso sitsho

      Enkosi Miguel!

      Ndiyayiqonda ngeparameter lonke ulwazi olongezelelekileyo olunikezelwa kwinkqubo, umsebenzi okanye inkqubo. Njengoko oku kunokuba nzima, mandikuphendule ngemizekelo embalwa.

      Kumyalelo we-linux ukukopa ifayile a.txt kwifayile b.txt, singabhala oku kulandelayo:

      $cp a.txt b.txt

      Inkqubo ye-cp apha ifumana iiparameter ezimbini ezingamagama eefayile ezimbini, eyokuqala (kufuneka ibekhona) a.txt kunye neyesibini b.txt.

      Omnye umzekelo: Ukuba uthumela ukuprinta ukusuka kwikhonsoli ngomyalelo

      $ lp ifayile.pdf

      Kule meko "ifayile.pdf" yiparameter yenkqubo ye-lp.

      Ndiyathemba ukuba ndiwanelisile amathandabuzo akho.

      Phendula nge quote

  2.   Miguel sitsho

    Izimvo zam aziveli, kukusilela kwembeko, andibuyeli kule forum kwakhona.

    1.    U-Pedro Ruiz Hidalgo obambe umfanekiso sitsho

      Andazi ukuba kwenzeke ntoni, nokuba kunjani na ukuba sele ipapashiwe.

      Ukubulisa