Tcl är ett mycket enkelt programmeringsspråk. Om du har programmeratinnan kan du lära dig tillräckligt för att skriva intressanta Tclprogram inom några timmar. Den här sidan ger en snabb översiktav huvuddragen i tcl. Efter att ha läst detta kommer du förmodligen att kunna börja skriva enkla TCL-skript på egen hand; men vi rekommenderar att du konsulterar en av de många tillgängliga TCL-böckerna för merkomplett information.
Grundläggande syntax
TCL-skript består av kommandon åtskilda av newlineseller semikolon., Alla kommandon har samma grundläggande form som illustreratsav följande exempel:
expr 20 + 10
det här kommandot beräknar summan av 20 och 10 och returnerar resultatet, 30.Du kan prova det här exemplet och alla andra på den här sidan genom att skriva dem till ett TCL-program som tclsh
; aftera-kommandot Slutför, tclsh
skriver ut resultatet.
varje TCL-kommando består av ett eller flera ord som separeras av mellanslag., I det här exemplet finns det fyra ord: expr
,20
, +
och 10
. Det förstaordet är namnet på ett kommando och de andra orden är argumenteradtill det kommandot. Alla TCL-kommandon består av ord, men olikakommander behandlar sina argument annorlunda.Kommandotexpr
behandlar alla itsargument tillsammans som ett aritmetiskt uttryck, beräknar resultatet av dettaexpression och returnerar resultatet som en sträng., In the expr
command the division into words isn’; t significant: you could just aseasily have invoked the same command as
expr 20+10
för de flesta kommandon är ordstrukturen viktig, med varjeord som används för ett distinkt syfte.
alla TCL-kommandon returnresults. Om ett kommando inte har något meningsfullt resultat returnerar det anempt sträng som resultat.
variabler
TCL kan du lagra värden i variabler och använda värdena laterin kommandon. Kommandotset
används för att skriva och readvariables., Till exempel ändrar följande kommando variabeln x
för att hålla värdet 32
:
set x 32
kommandot returnerar det nya värdet för variabeln. Du kan läsa värdet för en variabel genom att anropaset
med endast en singleargument:
set x
du behöver inte deklarera variabler i TCL: en variabel skapas automatiskt första gången den är inställd. TCL-variabler har intetyper: varje variabel kan innehålla något värde.,
för att använda värdet för en variabel i ett kommando, använd variablesubstitution som i följande exempel:
expr $x*3
När ett $
visas i ett kommando, behandlar TCL bokstävernaoch siffrorna efter det som ett variabelnamn och ersätter variabelns värde i stället för namnet. I det här exemplet kommer det faktiska argumentet som mottagits av kommandotexpr
att vara32*3
(förutsatt att variabelnx
var setas i föregående exempel)., Du kan använda variabel substitution inågot ord av något kommando, eller till och med flera gånger inom ett ord:
set cmd exprset x 11$cmd $x*$x
Kommandobyte
Du kan också använda resultatet av ett kommando i ett argument till anothercommand. Detta kallas command substitution:
set a 44set b
När ett som ett kapslat TCL-kommando.TCL utvärderar det kapslade kommandot och ersätter resultatet idet omslutande kommandot i stället för den gafflade texten., I exemplet ovan kommer det andra argumentet för det andra kommandot
set
att vara 176
.
citat och hängslen
med dubbla citattecken kan du ange ord som innehåller mellanslag. Tänk till exempel på följande skript:
set x 24set y 18set z "$x + $y is "
Efter att dessa tre kommandon har utvärderats variabel z
kommer värdet 24 + 18 is 42
. Allt mellan citaten gick till kommandotset
som ett enda ord., Observera att (A) kommando-och variabelsubstitutioner utförs på texten mellancitaten och (B) citaten själva skickas inte till kommandot.Om citaten inte fanns skulle kommandot set
havereceived 6 argument, vilket skulle ha orsakat ett fel.
Curly braces ger ett annat sätt att gruppera information i ord.,De skiljer sig från Citat genom att inga substitutioner utförspå texten mellan de lockiga hängslen:
set z {$x + $y is }
det här kommandot ställer in variabeln z
till värdet””.
kontrollstrukturer
Tcl ger en komplett uppsättning kontrollstrukturer inklusive kommando för villkorligt utförande, looping och procedurer. TCL controlstructures är bara kommandon som tar TCL-skript som argument.,Exemplet nedan skapar en TCL-procedur som heter power
,som höjer en bas till ett heltalseffekt:
proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}
det här skriptet består av ett enda kommando, proc
. Kommandotproc
tar tre argument: namnet på en procedur, en lista över argumentnamn och procedurens kropp, som isa TCL-skript. Observera att allt mellan lockigt stag islutet av den första raden och lockigt stag på den sista raden passedverbatim till proc
som ett enda argument., Kommandotproc
skapar ett nytt TCL-kommando som heter power
som tartvå argument. Du kan sedan anropa power
med commandslike följande:
power 2 6power 1.15 5
När power
anropas utvärderas procedurkroppen.Medan kroppen kör den kan komma åt sina argument som variabler:base
kommer att hålla det första argumentet ochp
kommer att hålla inne den andra.,
kroppen avpower
proceduren innehåller tre TCL-kommandon:set
, while
och return
. Kommandotwhile
gör det mesta av arbetet i procedure.It tar två argument, ett uttryck ($p > 0
) och abody, vilket är ett annat TCL-skript. while
commandevaluates dess uttryck argument med regler motsvarande dem som av programmeringsspråket C och om resultatet är sant (skilt från noll) thenit utvärderar kroppen som ett Tcl-skript., Det upprepar denna process över andover tills så småningom uttrycket utvärderas till falskt (noll). I det här falletkroppen för kommandot while
multiplicerade resultatet valueby base
och sedan minskningar p
. Närp
når noll innehåller resultatet den önskade effekten avbase
. Kommandotreturn
gör att procedureto avslutas med värdet av variabeln result
som procedurens resultat.
var kommer kommandon från?,
som du har sett är alla intressanta funktioner i TCL representerad av kommandon. Uttalanden är kommandon, uttryck ärutvärderas genom att utföra kommandon, kontrollstrukturer är kommandon och procedurer är kommandon.
TCL-kommandon skapas på tre sätt. En grupp kommandobekräftas av TCL-tolken själv. Dessa kommandon kallasbyggda kommandon. De innehåller alla kommandon duhar sett hittills och många fler (se nedan). De inbyggda kommandoradenfinns i alla TCL-applikationer.
den andra gruppen av kommandon skapas med TCL extensionmechanism., Tcl ger API: er som låter dig skapa ett nytt kommandogenom att skriva ett kommandoförfarande i C eller C++ som implementerarkommandot. Du registrerar sedan kommandoproceduren med theTcl-tolken genom att berätta för TCL namnet på kommandot som theprocedure implementerar. I framtiden, när det specifika namnetanvänds för ett TCL-kommando, kommer Tcl att ringa ditt kommandoförfarande för attutfärda kommandot. De inbyggda kommandona implementeras också med samma förlängningsmekanism; deras kommandoprocedurer är helt enkelt en del av TCL-biblioteket.,
När Tcl används i ett program, innehåller programmet dess nyckelfunktioner i Tcl med hjälp av förlängningsmekanismen. Således varierar setof tillgängliga TCL-kommandon från applikation till applikation.Det finns också många förlängningspaket som kan integrerasi alla TCL-program. En av de mest kända förlängningarna är Tk, som ger kraftfulla faciliteter för att bygga grafisk användninginterfaces. Andra tillägg ger objektorienterad programmering, databasåtkomst, mer grafiska funktioner och en mängd andra funktioner., En av Tcl: s största fördelar med att bygga integrationsapplikationer är den sjukdom med vilken den kan utvidgas till att omfatta nya funktioner eller kommunicera med andra resurser.
den tredje gruppen av kommandon består av procedurer som skapats med kommandot proc
, till exempel kommandot power
som skapats ovan. Vanligtvis används förlängningar för lägre nivåfunktioner där C-programmering är bekväm och procedurer användsför högre nivåfunktioner där det är lättare att skriva i Tcl.,
andra funktioner
Tcl innehåller många andra kommandon förutom de som används ipreceding exempel. Här är en sampler av några av de funktionersom tillhandahålls av de inbyggda TCL-kommandona:
- fler kontrollstrukturer, till exempel
if
,for
,foreach
ochswitch
. - String manipulation, inklusive en kraftfull regelbunden expressionmatching anläggning. Godtyckliga längdsträngar kan passeras runtoch manipuleras lika enkelt som siffror.,
- I/O, inklusive filer på disk, nätverksuttag och enheter somhar seriella portar. Tcl ger särskilt enkla anläggningar försoketkommunikation via Internet.
- filhantering: TCL ger flera kommandon för manipulatingfile namn, läsa och skriva filattribut, kopiera filer,ta bort filer, skapa kataloger, och så vidare.
- Underprocess anrop: du kan köra andra program med kommandot
exec
och kommunicera med dem medan de körs., - listor: TCL gör det enkelt att skapa samlingar av värden (listor)och manipulera dem på olika sätt.
- arrayer: du kan skapa strukturerade värden som består av namnvärdepar med godtyckliga strängvärden för namn och värden.
- tid och datum manipulation.
- händelser: TCL tillåter skript att vänta på att vissa händelser ska inträffa, t.ex. en förfluten tid eller tillgången till inmatningsdata i ett nätverksuttag.,
exempel
- ett enkelt kommandoradsverktyg
- en enkel nätverksserver
handledning
har lite tid att gräva lite längre in i språket?Tcl Tutorär ett bra sätt att lära sig mer om Tcl: s olika kommandon ochspråkfunktioner.