Linux / Unix Hais kom ua: expr

Lub npe

expr - Soj ntsuam ib qho kev qhia

Synopsis

expr arg ? arg arg ... ?

Concatenates arg 's (muab cais qhov chaw nruab nrab ntawm lawv), ntsuas qhov tshwm sim li Tcl qhia, thiab rov qab ntaus nqi. Cov neeg tsav tsheb tso cai nyob hauv Tcl cov kab lus yog cov neeg ua hauj lwm hauv C cov lus tso cai, thiab lawv muaj tib lub ntsiab lus thiab qhov muaj nqis raws li tus C cov neeg khiav haujlwm. Yeej yuav luag txhua lub sij hawm hais txog cov qhab-nees (integer lossis floating-point values). Piv txwv, qhov qhia

expr 8.2 + 6

ntsuas mus rau 14.2. Cov kab zauv Tcl txawv ntawm C lus rau hauv txoj kev uas cov neeg ua haujlwm tau teev tseg. Ntxiv thiab, Tcl cov lus qhia txhawb cov neeg tsis paub qab hau thiab kev sib piv ntawm cov hlua.

Cov haujlwm

Ib qho kev qhia tawm Tcl muaj kev sib txuas ntawm cov neeg ua haujlwm, cov tswv, thiab cov kab kos. Cov chaw dawb yuav siv tau ntawm cov neeg ua hauj lwm thiab cov neeg lag luam thiab cov kab kos; nws yog ignored los ntawm kev qhia cov lus qhia. Qhov ua tau, cov lus qhuab qhia yog txhais raws li qhov tseem ceeb. Cov zauv hauv xam (Integer values) yuav muab teev rau hauv cov zauv (qhov xwm txheej zoo li qub), nyob rau hauv octal (yog thawj tus cwj pwm ntawm tus cwj pwm yog 0 ), los yog hauv hexadecimal (yog thawj ob cim ntawm tus cwj pwm ua 0x ). Yog tias ib qho kev ua haujlwm tsis muaj ib hom ntawv uas muaj cov zauv uas tau hais los saum no, ces nws raug kho raws li tus nab npawb ntiv taw yog tias qhov ntawd tau. Cov nab npawb xov tooj ploj tuaj yeem teev nyob rau hauv ib qho twg uas tau txais los ntawm ANSI-raws C compiler (tshwj tsis yog tias f , F , l , thiab L suffixes tsis pub nyob rau hauv feem ntau sib txuas). Piv txwv, tag nrho cov hauv qab no yog cov naj npawb siv floating-point: 2.1, 3., 6e4, 7.91e + 16. Yog hais tias tsis muaj kev txhais lus muaj pes tsawg, ces qhov kev lag luam yog tso tseg raws li ib txoj hlua (thiab tsuas yog cov neeg tsim muaj tsawg xwb thiaj li siv tau).

Cov neeg khiav dej num yuav raug sau rau hauv ib qho ntawm cov nram qab no:

[1]

Raws li tus lej numeric, txawm tias integer lossis floating-point.

[2]

Raws li Tcl kuj sib txawv, siv tus txheej txheem $ cim. Tus nqi sib txawv ntawm tus nqi yuav raug siv raws li lub lag luam.

[3] Kev Hlub

Raws li ib txoj hlua ntawm ob-quotes. Tus parser qhia yuav ua tau nraub qaum ris, txawv dua lwm tus, thiab hais kom hloov rau ntawm cov lus qhia ntawm cov quotes, thiab siv tus nqi uas ua tiav raws li tus ua haujlwm

[4]

Ua ib txoj hlua nyob rau hauv kev zawm hniav. Cov cim ntawm lub qhib brace thiab sib piv ze brace yuav raug siv raws li cov hauj lwm tsis muaj hloov dab tsi.

[5] Kev Ntseeg

Ua raws li Tcl cov lus txib nrog hauv cov khawm. Qhov kev txiav txim yuav raug tua thiab nws cov txiaj ntsig yuav raug siv los ua cov hauj lwm.

[6]

Raws li kev ua zauv uas nws sib cam muaj cov ntaub ntawv saum toj no rau kev ua haujlwm, xws li kev txhaum ($ x) . Saib nram qab no rau cov npe ntawm cov dej num uas tau hais tseg.

Qhov twg hloov qhov tshwm sim saum toj no (xws li hauv cov hlua tau hais tawm), lawv tau ua raws li cov lus qhia. Txawm li cas los xij, ib qho ntxiv ntawm kev hloov pauv tau twb tau ua tiav los ntawm tus parser hais ua ntej qhov kev sib txuas ua haujlwm hu ua. Raws li hauv qab no, nws yog qhov zoo tshaj plaws los muab cov kab zauv tawm hauv kev siv los tiv thaiv qhov kev parser ntawm qhov kev hloov ntawm qhov hloov.

Rau qee qhov kev piv txwv ntawm cov lus qhia yooj yooj yim, xav tias tus nqi sib txawv ntawm tus nqi 3 thiab qhov sib txawv b yog qhov nqi 6. Ces qhov kev hais kom ua nyob rau sab laug ntawm txhua kab hauv qab yuav tsim tus nqi ntawm sab xis ntawm txoj kab:

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

Cov neeg tsav tsheb

Cov neeg tsav tsheb muaj npe tau teev tseg hauv qab no, ua ke nyob rau hauv qhov kev txiav txim ntawm kev nqis tes ua ntej:

- + ~!

Unary rho tawm, unary ntxiv, me ntsis-paub tsis, logical TSIS. Tsis tas li no cov neeg ua haujlwm no siv tau rau cov hlua khau, thiab cov kev txiav txim siab me ntsis yuav siv tau rau cov zauv xwb.

* /%

Muab ntau, faib, seem. Tsis tas li cov neeg ua haujlwm no yuav raug siv rau txoj hlua ntawm txoj hlua, thiab cov seem tshuav yuav siv rau cov zauv xwb. Cov seem hauv tas li yuav tsum muaj qhov kos npe tib yam nkaus li tus neeg saib xyuas thiab tus nqi tseem tsawg dua li tus neeg pab pawg.

+ -

Ntxiv thiab rho tawm. Siv rau txhua tus neeg ua num.

<< >>

Sab laug thiab txoj kev ua haujlwm. Siv rau cov zauv cim nkaus xwb. Txoj kev hloov txoj kev ua haujlwm yeej propagates lub ntsis kos npe.

<> <=> =

Boolean tsawg, ntau tshaj, tsawg dua los yog sib npaug, thiab ntau dua los yog sib npaug. Txhua tus neeg ua haujlwm tsim tawm 1 yog tias qhov mob ntawd muaj tseeb, 0 lwm yam. Cov neeg khiav lag luam no yuav raug siv rau cov hlua thiab cov naj npawb ntawm cov naj npawb, uas yog siv txoj kev sib piv ntaus ntawv.

==! =

Boolean sib npaug thiab tsis sib npaug. Txhua tus neeg teb xov tooj tsim tawm xoom / ib qho. Siv rau txhua hom kev lag luam.

&

Ntsis-wise THIAB. Siv rau cov zauv cim nkaus xwb.

^

Npaj-ntse tshwj xeeb LOS SIS. Siv rau cov zauv cim nkaus xwb.

|

Ntsis-wise LOSSIS. Siv rau cov zauv cim nkaus xwb.

&&

Yamntxwv THIAB. Ua kom muaj 1 tshwm sim yog tias ob tus neeg ua haujlwm tsis yog xoom, 0 lwm yam. Siv rau boolean thiab numeric (cov zauv los yog floating-point) ua haujlwm xwb.

||

SIV LOSSIS. Ua kom muaj 0 tshwm sim yog tias ob tus neeg ua haujlwm xoom, 1 lwm yam. Siv rau boolean thiab numeric (cov zauv los yog floating-point) ua haujlwm xwb.

x ? y : z

Yog tias-ces-lwm tus, xws li tom C. Yog x ntsuas qhov tsis yog xoom, ces qhov ntawd yog tus nqi ntawm y . Txwv tsis pub, qhov tshwm sim yog tus nqi z . Cov x operand yuav tsum muaj tus nqi ntawm tus lej.

Saib ntawm C phau ntawv qhia kom paub ntau ntxiv ntawm cov txiaj ntsim tau tsim los ntawm txhua tus neeg teb xov tooj. Tag nrho cov neeg ua hauj lwm nruab nrab binary rau sab laug-rau-sab hauv tib theem theem. Piv txwv, hais kom ua

expr 4 * 2 <7

rov qab 0.

Tus & & , || , thiab?: cov neeg tsav tsheb muaj 'kev ntsuam xyuas tub nkeeg', xws li hauv C, uas txhais tau hais tias cov tswv haujlwm tsis raug ntsuam xyuas yog tias lawv tsis xav tau los txiav txim qhov kev tshwm sim. Piv txwv, nyob rau hauv cov lus txib

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

tsuas yog ib qho ntawm [a] lossis [b] yuav raug soj ntsuam, nyob ntawm seb tus nqi ntawm $ v . Nco ntsoov tias, qhov no tsuas yog qhov tseeb yog tias tag nrho cov lus qhia nyob rau hauv kev zawm hniav; txwv tsis pub, tus Tcl parser yuav soj ntsuam [ob] [b] thiab [b] ua ntej ua tus txheej txheem expr .

Lej Cov Haujlwm

Tcl txhawb kev ua lej hauv qab no:

abs cosh log sqrt acos ob chav log10 srand asyn exp pow taum toj roob hauv pes flooring rand tanh atan2 fmod round ceil hypot sin cos kos sin

abs ( arg )

Rov qab qhov nqi ntawm arg . Arg tej zaum yuav yog integer lossis floating-point, thiab qhov tshwm sim rov qab rau tib daim ntawv.

acos ( arg )

Rov qab rau qhov arc cosine ntawm arg , nyob rau hauv qhov chaw [0, pi] radians. Arg yuav tsum nyob rau hauv qhov chaw [-1,1].

asin ( arg )

Rov qab rau qhov arc s sin ntawm arg , nyob rau hauv qhov ntau [-pi / 2, pi / 2] radians. Arg yuav tsum nyob rau hauv qhov chaw [-1,1].

atan ( arg )

Rov qab rau arc tangent ntawm arg , nyob rau hauv qhov ntau [-pi / 2, pi / 2] radians.

atan2 ( x, y )

Rov qab rau qhov arc tangent ntawm y / x , nyob rau hauv qhov ntau [-pi, pi] radians. x thiab y kuj ua tsis tau ob qho tib si.

ceil ( arg )

Rov qab rau qhov tsawg tshaj plaws integer tus nqi tsis tsawg dua arg .

cos ( arg )

Rov qab cov cosine ntawm arg , ntsuas hauv radians.

cosh ( arg )

Rov qab los ntawm hyperbolic cosine ntawm arg . Yog hais tias qhov tshwm sim yuav ua rau muaj txeej, qhov yuam kev rov qab.

ob zaug ( arg )

Yog hais tias arg yog floating value, rov arg , lwm tus converts arg floating thiab rov cov nqi converted.

exp ( arg )

Rov qab los exponential ntawm arg , txhais tias yog e ** arg . Yog hais tias qhov tshwm sim yuav ua rau muaj txeej, qhov yuam kev rov qab.

hauv pem teb ( arg )

Rov qab rau qhov loj tshaj tus nqi tsis ntau dua arg .

fmod ( x, y )

Rov qab cov floating-point remaining ntawm qhov faib x ntawm y . Yog tias y 0, qhov yuam kev rov qab.

hypot ( x, y )

Txhab qhov ntev ntawm qhov hypotenuse ntawm txoj cai-angled peb tog ( x * x + y * y ).

int ( arg )

Yog hais tias arg yog ib qho integer tus nqi, rov arg , txwv tsis pub converts rau integer los ntawm truncation thiab rov ua tus nqi hloov dua siab tshiab.

cav ( arg )

Rov qab lub hnub qub logarithm ntawm arg . Arg yuav tsum muaj tus nqi zoo.

log10 ( arg )

Rov qab los ntawm 10 lub logarithm ntawm arg . Arg yuav tsum muaj tus nqi zoo.

pow ( x, y )

Tshem cov nqi x tsa rau lub zog y . Yog x yog qhov tsis zoo, y yuav tsum muaj tus nqi integer.

rand ()

Rov qab los tus nab npawb floating ntawm zero ntawm tsawg dua ib los yog, hauv cov ntsiab lus lej, qhov ntau [0,1]. Cov noob los ntawm lub moos ntawm lub tshuab los yog yuav muab cov lus qhia nrog cov srand muaj nuj nqi.

puag ncig ( arg )

Yog hais tias arg yog ib qho integer tus nqi, rov arg , txwv tsis pub converts rau integer los ntawm rounding thiab rov ua tus nqi hloov dua siab tshiab.

kev txhaum ( arg )

Rov qab lub hnub ntawm arg , ntsuas hauv radians.

sinh ( arg )

Rov qab ua dua qhov hyperbolic sin ntawm arg . Yog hais tias qhov tshwm sim yuav ua rau muaj txeej, qhov yuam kev rov qab.

sqrt ( arg )

Rov qab los ntawm cov square root ntawm arg . Arg yuav tsum yog tsis zoo.

srand ( arg )

Lub arg , uas yuav tsum yog ib qho integer, yog siv los pib dua cov noob rau random tooj generator. Xa thawj tus naj npawb ntawm qhov tawm ntawd. Txhua tus neeg txhais lus tau nws cov noob.

tan ( arg )

Rov qab los ntawm kev sib cav , ntsuas hauv radians.

tanh ( arg )

Rov qab los ntawm kev sib tw ntawm hyperbolic tangent ntawm arg .

Ntxiv rau cov kev tso dag zog no, cov ntawv yuav txhais tau cov haujlwm ntxiv uas siv Tcl_CreateMathFunc ().

Hom, Overflow, thiab Precision

Tag nrho cov lej suav nrog cov lej yog ua tiav nrog C hom ntev , thiab tagnrho sab nraud competing uas floating-point yog ua nrog C hom ob . Thaum hloov txoj hlua rau floating-point, qhov kev pom zoo ntawm qhov phev raug pom thiab ua rau Tcl yuam kev. Rau kev hloov mus rau cov zauv ntawm txoj hlua, kev pom ntawm kev phwj lawm yog nyob ntawm qhov kev coj cwj pwm ntawm qee lub sij hawm hauv C cov tsev qiv ntawv, yog li nws yuav tsum tau saib raws li kev tsis txaus siab. Nyob rau hauv txhua rooj plaub, cov kab txaij thiab feem pua ​​tsis muaj feem cuam tshuam tsis pom tseeb rau cov qhab nia nruab nrab. Floating-point overflow thiab underflow yog kuaj tau lub degree txaus siab los ntawm tus kho vajtse, uas feem ntau yog zoo nkauj ntseeg.

Kev hloov ntawm cov sawv cev ntawm sab nraud rau integer, floating-point, thiab txoj hlua txoj hlua yuav tsum tau ua raws li qhov tsim nyog. Rau cov lej xam zauv, cov zauv yuav siv mus txog rau qee qhov floating-point tus naj npawb qhia, tom qab uas siv cov floating-point. Piv txwv,

expr 5/4

rov qab 1, thaum

expr 5 / 4.0 expr 5 / ([hlua ntev \ "abcd \"] + 0.0)

ob leeg rov los 1.25. Floating-point values ​​yog ib txwm xa nrog ib tug . '' lossis ib e thiaj li tias lawv yuav tsis zoo li cov kab zauv qhov tseem ceeb. Piv txwv,

expr 20.0 / 5.0

rov qab 4.0 , tsis yog 4 .

String Operations

Kev ntsuas txoj hlua yuav siv tau raws li cov neeg sib piv cov neeg sib piv, txawm hais tias tus neeg ntsuam xyuas sim ua piv ua cov cim lossis cov floating-point thaum nws tuaj yeem ua tau. Yog tias ib qho ntawm cov kev sib piv yog ib txoj hlua thiab qhov sib tw muaj nuj nqis, tus numeric operand muab hloov rov qab rau ib txoj hlua uas siv cov C sprintf format specifier % d rau cov zauv thiab % g rau floating-point qhov tseem ceeb. Piv txwv, cov lus txib

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

ob qho tib si rov qab 1. Tus thawj sib piv yog siv cov lej sib piv, thiab qhov thib ob yog siv cov hlua sib piv tom qab ob txoj hauj lwm thib ob hloov dua siab tshiab rau txoj hlua 18 . Vim Tcl txoj kev xav kho qhov tseem ceeb ntawm cov naj npawb thaum twg ua tau, nws tsis yog feem ntau yog ib lub tswv yim zoo uas siv cov neeg teb xov tooj nyiam == thaum koj xav tau txoj hlua sib piv thiab cov txiaj ntsim ntawm cov neeg ua hauj lwm yuav yog cov uas tsis ncaj ncees; nws 's zoo dua rau cov no yuav siv txoj hlua hais kom ua xwb.

Kev Xav Txog Kev Kawm

Tso cov kab zauv rau hauv kev zawm hniav rau qhov zoo tshaj plaws ceev thiab cia kom tsawg tshaj plaws. Qhov no tso cai rau Tcl bytecode compiler los tsim cov cai zoo tshaj plaws.

Raws li tau hais los saum no, cov kab zauv muaj ob zaug: ib zaug los ntawm Tcl parser thiab ib zaug los ntawm expr command. Piv txwv, cov lus txib

teem caij 3 teev b {$ a + 2} expr $ b * 4

rov qab 11, tsis muaj ntau yam 4. Qhov no yog vim Tcl parser yuav xub hloov $ a + 2 rau qhov kev hloov b , ces tus expr command yuav soj ntsuam qhov qhia $ a + 2 * 4 .

Cov kab lus feem ntau tsis tas yuav tsum muaj kev hloov thib ob. Tog twg los lawv muaj nyob rau hauv kev sib npaug los yog, yog tias tsis yog, lawv qhov kev hloov thiab cov lus txib hloov tau cov zauv los yog cov hlua uas tsis tas yuav tsum tau hloov. Txawm li cas los xij, vim hais tias ob peb kab lus qhia tsis txaus siab yuav tsum muaj ob seem ntawm qhov hloov, tus bytecode compiler yuav tsum xa cov lus qhia ntxiv los daws qhov teeb meem no. Txoj cai kim tshaj plaws yog tsim nyog rau cov kab lus uas tsis muaj kev txwv uas muaj kev hloov lo lus txib. Cov kab lus no yuav tsum tau ua raws los ntawm kev tsim cov cai tshiab txhua lub sijhawm thaum qhia tawm.

Keywords

arithmetic, boolean , sib piv, qhia, kev sib piv sib txawv

Tseem ceeb: Siv tus txiv neej hais kom ua ( % tus txiv neej ) seb qhov kev hais kom raug siv hauv koj lub computer.