I-Linux / Unix Command: expr

Igama

expr - Hlola inkulumo

Isiqubulo

expr arg ? arg arg ... ?

Iqhathanisa i- arg 's (ihlanganisa izikhala zokuhlukanisa phakathi kwabo), ihlola umphumela njengendlela yokubonisa i-Tcl, iphinda ibuyise inani. Ama-operators avunyelwe ngamazwi we-Tcl yi-subset yama-operators evunyelwe ezinkulumweni ze-C, futhi anencazelo efanayo kanye nokuqala njengabaqhubi be-C abahambelana nabo. Amazwi cishe athengisa imiphumela yezinombolo ( amanani amaningi noma amanani athile). Isibonelo, inkulumo

expr 8.2 + 6

ihlola ku-14.2. Izinkulumo ze-Tcl zihluke ezinkulumweni zeC ngendlela ngendlela opharetha ezicacisiwe ngayo. Futhi, izinkulumo ze-Tcl zisekela ama-operands angewona izinombolo kanye nokuqhathaniswa kwezintambo.

I-Operands

Inkulumo ye-Tcl iqukethe inhlanganisela yama-opharetha, opharetha, nabazali. Isikhala esimhlophe singasetshenziswa phakathi kwama-opharetha nabaqhubi nabazali; ayinaki imiyalo yenkulumo. Uma kunokwenzeka, ama-opharetha ahunyushwa njengama-integer amanani. Amanani we-Integer angacaciswa kudesimali (icala elivamile), ngo-octal (uma umlingisi wokuqala we-operand ngu- 0 ), noma ku-hexadecimal (uma izinhlamvu ezimbili zokuqala ze-operand zingu- 0x ). Uma i-operand ingenayo yefomethi ephelele enikezwe ngenhla, iphathwa njengenombolo yezintantathu uma kungenzeka. Izinombolo zephuzu eligcweleyo zingacaciswa kunoma yiziphi izindlela ezamukelwa yi-ANSI-ehambisana ne-compiler C (ngaphandle kokuthi izilinganiso ze- f , F , l , ne- L ngeke zivunyelwe ekufakweni okuningi). Isibonelo, zonke lezi zilandelayo ziyizinombolo ezihamba ngezintambo ezihambayo: 2.1, 3., 6e4, 7.91e + 16. Uma kungekho ukuchazwa kwenombolo kungenzeka, khona-ke i-operand ishiywe njengezintambo (futhi kuphela isethi esinqunyiwe se-opharetha ingasetshenziswa kuyo).

I-Operands ingacaciswa nganoma iyiphi yalezi zindlela ezilandelayo:

[1]

Njengenani lezinombolo, noma inamba noma iphuzu elihambayo.

[2]

Njengokwehluka kwe-Tcl, usebenzisa ukulinganisa okujwayelekile kwe-$ . Inani lokuguquguquka lizosetshenziswa njenge-operand.

[3]

Njengeyunithi ehlanganiswe kuma-quotes amabili. I-expression parser izokwenza ukubuyisela emuva, ukuguquguquka, nokufaka esikhundleni sokungena esikhundleni kolwazi phakathi kwamacaphuno, bese usebenzisa inani elibanjelwe njenge-operand

[4]

Njengeyunithi ehlanganiswe ngama-braces. Izinhlamvu eziphakathi kwe-brace evulekile kanye ne-brace close eziseduze zizosetshenziswa njenge-operand ngaphandle kokufaka esikhundleni.

[5]

Njengomyalo we-Tcl ovalwe kubakaki. Umyalo uzokwenziwa futhi umphumela wayo uzosetshenziswa njenge-operand.

[6]

Njengomsebenzi wesibalo, iziphakamiso zazo zinezinhlobo ezingenhla zezinhlelo zokusebenza, ezifana nesono ($ x) . Bona ngezansi uhlu lwamisebenzi echaziwe.

Lapho indawo engena khona ingenhla (isib. Ngaphakathi kwezingcingo ezicaphuniwe), zenziwa ngemilayezo yenkulumo. Noma kunjalo, ungqimba olungeziwe lokufaka endaweni kungenzeka seluvele lwenziwa ngumlayezo womyalo ngaphambi kokuthi iprosesa yenkulumo ibizwe. Njengoba kuxoxwe ngezansi, kuvamise ukuthi kungcono ukufaka amagama emabhokisini ukuvimbela umlayezo womyalo ekwenzeni indawo esikhundleni.

Kwezinye izibonelo zezinkulumo ezilula, ake sithi i-variable ine-value 3 futhi inguquko b inenani 6. Khona-ke umyalo ohlangothini lwesobunxele womugqa ngamunye ongezansi uzoveza inani ngakwesokudla komugqa:

expr 3.1 + $ a6.1 expr 2 + "$ a. $ b" 5.6 expr 4 * [llength "6 2"] 8 expr {{igama elilodwa} <"igama $ a"} 0

Abasebenzisi

Ama-opharetha asemthethweni afakwe kuhlu ngezansi, aqoqwe nge-oda elinciphile lokuhamba phambili:

- + ~ ~!

Ukungahambisani okungahambisani, okungahlanganisiwe futhi, okungaqondanga kahle AKUKHONA, okungaqondakali QAPHELA. Akekho kulawa ma-opharetha angasetshenziswa kuma-string opharetha, futhi ahlakaniphile awakwazi ukusetshenziselwa kuphela izinombolo.

* /%

Hlanganisa, hlukana, okusele. Akekho kulawa ma-opharetha angasetshenziswa kuma-string opharetha, futhi isisele singasetshenziswa kuphela ku-integer. Okusele kuyohlale kunesibonakaliso esifanayo njengomshayeli kanye nenani eliphelele elincani kune-divisor.

+ -

Engeza bese ususa. Kuvumelekile kunoma yiziphi izinkampani zezinombolo.

<< >>

Ukushintsha kwesokunxele nokulungile. Kuvumelekile ukuhlanganisa ama-operands kuphela. Ukushintsha kwesokudla kusakaze njalo kusakaze isibonakaliso.

<> <=> =

I-boolean encane, enkulu, engaphansi noma elinganayo, futhi enkulu noma elinganayo. U-opharetha ngamunye uveza 1 uma isimo siyiqiniso, 0 ngaphandle kwalokho. Lawa ma-operators angasetshenziswa kuma-strings kanye nama-operands ezinombolo, lapho kuqhathaniswa khona uchungechunge lwezintambo.

==! =

I-boolean elinganayo futhi engalingani. Opharetha ngamunye uveza umphumela we-zero / owodwa. Kuvumelekile kuzo zonke izinhlobo ze-operand.

&

I-AND- Kuvumelekile ukuhlanganisa ama-operands kuphela.

^

I-OR ekhethekile ene-Bit ehlakaniphile. Kuvumelekile ukuhlanganisa ama-operands kuphela.

| |

I-OR-smart-OR. Kuvumelekile ukuhlanganisa ama-operands kuphela.

&&

I-ORIC AND. Iveza umphumela owodwa uma kokubili ama-opharetha engewona, 0 kungenjalo. Kuvumelekile ama-boolean nezinombolo (ama-integers noma ama-floating-point) opharetha kuphela.

||

KULUNGILE. Ikhiqiza imiphumela engu-0 uma kokubili ama-opharetha ayinayo, 1 kungenjalo. Kuvumelekile ama-boolean nezinombolo (ama-integers noma ama-floating-point) opharetha kuphela.

x ? y : z

Uma-ke-ke-ke, njengokuthi ku-C. Uma ihlolisisa okungenayo i-zero, khona-ke umphumela uyigugu y . Uma kungenjalo, umphumela uyinani le- z . I-operand x kumele ibe nenani lezinombolo.

Bheka i-C manual ukuze uthole imininingwane eminye ngemiphumela eyenziwa yi-opharetha ngamunye. Konke iqembu le- opharetha labanambambili kwesokunxele kuya kwesokudla ngaphakathi kwezinga elifanayo lesandulela. Isibonelo, umyalo

expr 4 * 2 <7

kubuya 0.

I && , || , futhi?: opharetha babe `` ukuhlolwa okuvilaphayo '', njengoba ku-C, okusho ukuthi ama-opharetha awahlolwa uma engadingeki ukucacisa umphumela. Isibonelo, kumyalo

expr {$ v? [a]: [b]}

okukodwa kwe [a] noma [b] kuzokwenziwa ukuthi kuhlolwe empeleni, kuye ngokubaluleka kwe $ v . Kodwa-ke, phawula ukuthi lokhu kuyiqiniso kuphela uma yonke inkulumo ishicilelwe kuma-braces; uma kungenjalo, umhloli we-Tcl uzohlola kokubili [a] futhi [b] ngaphambi kokucela umyalo we- expr .

Imisebenzi yeMathe

I-Tcl isekela imisebenzi elandelayo yezibalo ezinkulumweni:

I-abs cosh log sqrt i- log double i- log10 i- asin exp in tan atan phansi i- rand tan i- atan2 i- fmod nxazonke i- hypot sin sin int int sinh

i-abs (i- arg )

Ibuyisa inani eliphelele le- arg . I-Arg ingaba yinani noma inamba-ehambayo, futhi umphumela ubuyiselwa ngendlela efanayo.

i-acos (i- arg )

Ibuyisa i-arc cosine ye- arg , ebangeni lobubanzi [0, pi]. I-Arg kufanele ibe sebanga [-1,1].

i-asin ( arg )

Ibuyisa i-arc sine ye- arg , kumabanga angu- [-pi / 2, pi / 2]. I-Arg kufanele ibe sebanga [-1,1].

i-atan (i- arg )

Ibuyisa i-arc tangent ye- arg , kuma-radians [-pi / 2, pi / 2] ububanzi.

i-atan2 ( x, y )

Ibuyisa i-arc tangent ye- y / x , ebangeni lobubanzi [-pi, pi]. x futhi y ayikwazi kokubili ukuba ngu-0.

ceil ( arg )

Ibuyisela inani elincane kakhulu le-integer hhayi ngaphansi kwe- arg .

i-cos (i- arg )

Ibuyisa i-cosine ye- arg , kulinganiswa kuma-radians.

cosh ( arg )

Ibuyisa i-hyperbolic cosine ye- arg . Uma umphumela ungabangela ukuchichima, iphutha libuyiselwa.

kabili (i- arg )

Uma i-value iyinani elithantayo, libuyisela i- arg , kungenjalo liguqula i- ar ukuze lifike futhi libuyisele inani eliguquliwe.

exp ( arg )

Ibuyisa ukucaciswa kwe- arg , okuchazwe njenge-** **. Uma umphumela ungabangela ukuchichima, iphutha libuyiselwa.

phansi ( arg )

Ibuyisa inani elibalulekile kakhulu elibalulekile hhayi elikhulu kune- arg .

i-fmod ( x, y )

Ibuyisa isamba esilandelayo sezintambo zesigaba x by y . Uma i yi-0, iphutha libuyiselwe.

i-hypot ( x, y )

Icubungula ubude be-hypotenuse yenxantathu elungile ( x * x + y * y ).

int ( arg )

Uma i-value iyinani eliphelele, libuyisela i- arg , kungenjalo liguqula i- arg ukuze liphelele ngokufaka i-truncation iphinde libuyisele inani eliguquliwe.

log ( arg )

Ibuyisa i-logarithm yemvelo ye- arg . I-Arg kumele ibe yinani elihle.

log10 ( arg )

Ibuyisa i-logarithm eyisisekelo ye- arg . I-Arg kumele ibe yinani elihle.

i-pow ( x, y )

Ihlanganisa inani le- x eliphakanyiswe emandleni y . Uma x ingalungile, y kumele ibe yinani eliphelele.

i-rand ()

Ibuyisela inamba yendawo enamanzi ukusuka ku-zero kuya ngaphansi kweyodwa noma, ngokwemibandela, ibanga [0,1]. Inzalo ivela ewashi langaphakathi lomshini noma ingabe isetjenziswa ngokusebenza ngomsebenzi wokusebenza.

nxazonke ( arg )

Uma i-value iyinani eliphelele, libuyisela i- arg , kungenjalo liguqula i- arg ukuze lihlanganiswe futhi libuyisele inani eliguquliwe.

isono ( arg )

Ibuyisa i-sine ye- arg , kulinganiswa kuma-radians.

isono ( arg )

Ibuyisa i-hyperbolic sine ye- arg . Uma umphumela ungabangela ukuchichima, iphutha libuyiselwa.

I-sqrt (i- arg )

Ibuyisa impande yesikwele ye- arg . I-Arg kumele ibe yinto engebi.

srand ( arg )

I- arg , okumele ibe yinani, isetshenziselwa ukusetha kabusha imbewu ye-generator yenombolo ehleliwe. Ibuyisa inombolo yokuqala okungahleliwe kusuka kuleyo mbewu. Umhumushi ngamunye unenzalo yakhe.

i-tan ( arg )

Ibuyisa i-tangent ye- arg , kulinganiswa kuma-radians.

i-tanh (i- arg )

Ibuyisa i-hyperbolic tangent ye- arg .

Ngaphezu kwale miisebenzi ekhethiwe , izinhlelo zokusebenza zingachaza imisebenzi eyengeziwe isebenzisa i- Tcl_CreateMathFunc ().

Izinhlobo, Ukuchichima, nokuPhelela

Zonke izingcingo zangaphakathi ezibandakanya izinombolo zenziwa ngohlobo C isikhathi eside , futhi zonke izingqikithi zangaphakathi ezibandakanya amaphuzu ahambayo zenziwa ngohlobo C oluphindwe kabili . Uma uguqula uchungechunge ukuze uphendule-iphuzu, ukuchichima okubonakalayo kutholakala futhi kubangele iphutha le-Tcl. Ukuze ukuguqulwa kube yi-integer kusuka kuzintambo, ukutholakala kokuchichima kuxhomeke ekuziphatheni kweminye imizila kumtapo wolwazi wasekhaya C, ngakho kufanele kuthathwe njengokungathembeki. Kunoma yikuphi, inamba yokuchichima nokuphuphuma ngokuvamile ayitholakali ngokuthembekile ngemiphumela ephakathi. I-Floating-iphuzu lokuchichima nokugeleza kutholakala ngezinga elisekelwe yi-hardware, ejwayelekile enokwethenjelwa kakhulu.

Ukuguqulwa phakathi kwezethulo zangaphakathi ze-integer, i-floating-point, kanye nezinkampani zezintambo zenziwe ngokuzenzekelayo njengoba kudingeka. Ngama-computations e-arithmetic, izinombolo zisetshenziselwa ukufakwa kwenombolo ethile yezinto ezihamba phambili, emva kwalokho okusetshenziselwa khona ukutshuza. Ngokwesibonelo,

expr 5/4

kubuya 1, ngenkathi

expr 5 / 4.0 expr 5 / ([string ubude "abcd"] + 0.0)

bobabili babuya 1.25. Amagugu-amaphuzu agcwele amaphuzu ahlale ebuyiselwa nge `` . '' noma i - e ukuze kungabonakali njengamanani amanani. Ngokwesibonelo,

expr 20.0 / 5.0

ubuya 4.0 , hhayi 4 .

Izinkambo Zokusebenza

Amagugu angaphakathi angasetshenziswa njengama-opharetha we-opharetha wokuqhathanisa, nakuba umhloli wezwi uzama ukwenza ukuqhathaniswa njengenani eligcwele noma iphuzu elihambayo uma likwazi. Uma omunye wama-opharetha wokuqhathanisa uyinetha futhi omunye unenani lezinombolo, i-operand yenombolo iguqulwa emuva kwichungechunge besebenzisa isichazamazwi sefomethi ye-C sprintf % d yezin integers kanye ne- % g yamagugu angaphakathi -amaphuzu. Isibonelo, imiyalo

expr {"0x03"> "2"} expr {"0y" <"0x12"}

bobabili babuya 1. Ukuqhathanisa kokuqala kwenziwa ngokusebenzisa ukuqhathanisa okuphelele, kanti okwesibini kwenziwa ngokusebenzisa ukuqhathaniswa kwezinhlamvu emva kokusebenza kocingo lwesibili kuguqulwa kwichungechunge 18 . Ngenxa yokuthambekela kwe-Tcl yokuphatha amanani njengezinombolo noma kunini lapho kungenzeka khona, akuwona umqondo omuhle ukusebenzisa ama-opharetha afana == uma ufuna ngempela ukuqhathaniswa kwezintambo futhi izindinganiso ze-opharetha zingahle zihambisane; kungcono kulezi zimo ukusebenzisa umyalo wezintambo kunalokho.

Ukucabangela ukusebenza

Vimbela izinkulumo ezinama-braces ukuze uthole isivinini esihle kakhulu kanye nezidingo zesitoreji ezincane kakhulu. Lokhu kuvumela i-Tcl bytecode compiler ukudala ikhodi engcono kakhulu.

Njengoba kukhonjisiwe ngenhla, izinkulumo zishintshwa kabili: once by the TCl perser futhi kanye ngomyalo expr . Isibonelo, imiyalo

setha isethi 3 b {$ a + 2} expr $ b * 4

buyela emuva 11, hhayi i-multiple of 4. Lokhu kungenxa yokuthi umculi we-Tcl uzofaka kuqala u-$ a + 2 ukuze kuguquguquke b , bese umyalo we- expr uzohlola inkulumo engu $ $ + 2 * 4 .

Izinkulumo eziningi azidingi uhlangothi lwesibili lwama-substitutions. Kungakhathaliseki ukuthi zifakwe emabhokisini noma, uma kungenjalo, izakhi eziguquguqukayo nezokulawula ziletha izinombolo noma izintambo ezingazidingi ngokwabo. Kodwa-ke, ngoba izinkulumo ezimbalwa ezingavunyelwe zidinga izakhi ezimbili zokubambisana, umhlanganisi we-bytecode kufanele akhiphe imiyalelo eyengeziwe yokusingatha lesi simo. Ikhodi ebiza kunazo zonke iyadingeka kumazwi angavunyelwe aqukethe okufaka esikhundleni somyalo. Lezi zinkulumo kumele zenziwe ngokukhiqiza ikhodi entsha isikhathi ngasinye lapho inkulumo isenziwa.

Amagama angukhiye

i-arithmetic, i- boolean , iqhathanisa, inkulumo, ukuqhathanisa okungajwayelekile

Okubalulekile: Sebenzisa umyalo womuntu ( % umuntu ) ukuze ubone ukuthi umyalo usetshenziswe kanjani kukhompyutha yakho ethile.