M. Garels. Bash ceļvedis. Mainīgie lielumi. Kā iestatīt un atspējot lokālos, lietotāja un sistēmas vides mainīgos operētājsistēmā Linux Kā atrast, kur ir rakstīts čaulas mainīgais

Mainīgie veidi

Kā redzat no iepriekš minētajiem piemēriem, čaulas mainīgie parasti tiek rakstīti ar lielajiem burtiem. Bash saglabā divu veidu mainīgo sarakstus:

Globālie mainīgie

Globālie vai vides mainīgie ir pieejami visos apvalkos. Lai parādītu vides mainīgos, varat izmantot komandas env vai printenv. Šīs komandas tiek nodrošinātas kā pakotnes daļa sh-utils.

Zemāk ir tipiska izvade:

Franky ~> printenv CC=gcc CDPATH=.:~:/usr/local:/usr:/ CFLAGS=-O2 -fomit-frame-pointer COLORTERM=gnome-terminal CXXFLAGS=-O2 -fomit-frame-pointer DISPLAY=: 0 DOMAIN=hq.garrels.be e= TOR=vi FCEDIT=vi FIGNORE=.o:~ G_BROKEN_FILENAMES=1 GDK_USE_XFT=1 GDMSESSION=Noklusējuma GNOME_DESKTOP_SESSION_ID=Noklusējuma GTK_RC_FILES=/etc/ktfrank.//gt. -1.2-gnome2 GWMCOLOR=tumši zaļš GWMTERM=xterm HISTFILESIZE=5000 history_control=ignoredups HISTSIZE=2000 HOME=/nethome/franky HOSTNAME=octarine.hq.garrels.be INPUTRC=/etc/inputrc/ JAVrHOME=/ JAVrHOME= j2sdk1.4.0 LANG=en_US LDFLAGS=-s LD_LIBRARY_PATH=/usr/lib/mozilla:/usr/lib/mozilla/plugins LESSCHARSET=latin1 LESS=-edfMQ LESSOPEN=|/usr/bin/lesspipe.sh %s LEX=flex LOCAL_MACHINE=oktarīns LOGNAME=franky LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd= 40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*. com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz= 01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01; 31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31: *.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*. tif=01;35: MACHINES=octarine MAILCHECK=60 MAIL=/var/mail/franky MANPATH=/usr/man:/usr/share/man/:/usr/local/man:/usr/X11R6/man MEAN_MACHINES= octarine MOZ_DIST_BIN=/usr/lib/mozilla MOZILLA_FIVE_HOME=/usr/lib/mozilla MOZ_PROGRAM=/usr/lib/mozilla/mozilla-bin MTOOLS_FAT_COMPATIBILITY=1 MYMALLOC=0 NNTPPORT=119 NNTPPORT=119 NNTPPORT=119 NNTPPORT=119 NNTPNP_THPgin/INPPSER2ns/pl. : / usr/lib/netscape/plugins OLDPWD=/nethome/franky OS=Linux PAGER=mazāk PATH=/nethome/franky/bin.Linux:/nethome/franky/bin:/usr/local/bin:/usr/local/ sbin :/usr/X11R6/bin:/usr/bin:/usr/sbin:/bin:/sbin:. PS1=\[\033franky atrodas mapē \w\[\033 PS2=Vairāk ievades> PWD=/nethome/franky SESSION_MANAGER=local/octarine.hq.garrels.be:/tmp/.ICE-unix/22106 SHELL=/bin /bash SHELL_LOGIN=--pieteikšanās SHLVL=2 SSH_AGENT_PID=22161 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/tmp/ssh-XXmhQ4fC/agent franky USER=franky _=/usr/bin/printenv VISUAL=vi WINDOWID=20971661 XAPPLRESDIR=/nethome/franky/app-defaults XAUTHORITY=/nethome/franky/.Xauthority XENVIRONMENT=/nethome/franky/XENVIRONMENT=/nethome/franky/.THFIXdefaarults /X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/lib/X11 /%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S :/usr/X11R6/lib/X11/%T/%N%S XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB XMODIFIERS=@im=none XTERMID= XWINHOME=/usr/X11R6 X=X11R6 -YACC=bison y

Vietējie mainīgie

Vietējie mainīgie ir pieejami tikai pašreizējā komandu apvalkā. Ja iebūvētā komanda komplekts tiek izmantots bez parametriem, tas atgriezīs visu mainīgo (ieskaitot izpildlaika mainīgos) un funkciju sarakstu. Izmantosim formatējumu un izveidosim sakārtotu rezultātu, kurā ņemta vērā mainīgo atrašanās vieta.

Zemāk ir diff fails, kas izveidots, salīdzinot komandu rezultātus printenv Un komplekts, pēc izņemšanas no to funkciju saraksta, kuras arī parāda komanda komplekts:

Franky ~> diff set.sorted printenv.sorted | grep "<" | awk "{ print $2 }" BASE=/nethome/franky/.Shell/hq.garrels.be/octarine.aliases BASH=/bin/bash BASH_VERSINFO=(="2" BASH_VERSION="2.05b.0(1)-release" COLUMNS=80 DIRSTACK=() DO_FORTUNE= EUID=504 GROUPS=() HERE=/home/franky HISTFILE=/nethome/franky/.bash_history HOSTTYPE=i686 IFS=$" LINES=24 MACHTYPE=i686-pc-linux-gnu OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PIPESTATUS=(="0") PPID=10099 PS4="+ PWD_REAL="pwd SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor THERE=/home/franky UID=504

Mainīgo dalīšana pēc satura

Papildus mainīgo lielumu sadalīšanai lokālajos un globālajos, mēs varam tos arī iedalīt kategorijās, pamatojoties uz to, kāds saturs tiek glabāts mainīgajā. Šajā sakarā mainīgos lielumus iedala četros veidos:

  • Virknes mainīgie
  • Veseli mainīgie
  • Mainīgie - konstantes
  • Mainīgie - masīvi

Šos mainīgo veidus aplūkosim 10. nodaļā. Tagad savos mainīgajos izmantosim veselu skaitļu un virkņu vērtības.

Mainīgo izveide

Mainīgajos lielumos tiek izdalīti lielie un mazie burti, un pēc noklusējuma tiek izmantoti lielie burti. Dažreiz vietējo mainīgo rakstīšanai ir ierasts izmantot mazos burtus. Tomēr mainīgo nosaukumiem varat izmantot jebkuras rakstzīmes un pat jaukt lielos un mazos burtus. Varat arī izmantot ciparus mainīgo nosaukumos, taču vārdi, kas sākas ar cipariem, nav atļauti:

Uzvedne> eksportēt 1numurs=1 bash: eksportēt: `1number=1": nav derīgs identifikators

Lai komandu čaulā iestatītu mainīgo, izmantojiet šo komandu

VARNAME="vērtība"

Neievietojiet atstarpes ap vienādības zīmi, jo tas radīs kļūdas. Kad mainīgajiem piešķirat vērtības, ir labs ieradums virknes saturu ievietot pēdiņās; tas samazina iespēju kļūdīties.

Daži lielo un mazo burtu, ciparu un atstarpju lietošanas piemēri (ziņojums komanda nav atrasts norāda, ka ir problēma - apm.):

Frenkijs ~> MYVAR1="2" franky ~> atbalss $MYVAR1 2 franky ~> first_name="Franky" franky ~> echo $first_name Frenky franky ~> full_name="Franky M. Singh" franky ~> atbalss $full_name Frenkijs M. Singh franky ~> MYVAR-2="2" bash: MYVAR-2=2: komanda nav atrasta franky ~> MYVAR1 = "2" bash: MYVAR1: komanda nav atrasta franky ~> MYVAR1= "2" bash: 2: komanda nav atrasts franky ~> atiestatīts MYVAR1 vārds pilns_vārds franky ~> echo $MYVAR1 $first_name $full_name<--no output-->atklāts ~>

Eksportēt mainīgos

Mainīgais, kas izveidots, kā parādīts iepriekš minētajā piemērā, ir pieejams tikai pašreizējā komandu apvalkā. Šis ir lokāls mainīgais: pašreizējā čaulas pakārtotie procesi šo mainīgo nezinās. Lai mainīgos nodotu apakščaulai, mums ir nepieciešams eksportēt izmantojot iebūvēto komandu eksportēt. Eksportētos mainīgos sauc par vides mainīgajiem. Vērtības piešķiršana un eksportēšana parasti tiek veikta vienā darbībā:

Eksportēt VARNAME="vērtību"

Apakščaula var mainīt mainīgos, kas ir mantoti no vecākprocesa, bet pakārtotā procesa veiktās izmaiņas neietekmē vecākprocesu. Tas ir parādīts šādā piemērā:

Franky ~> full_name="Franky M. Singh" franky ~> bash franky ~> echo $full_name franky ~> exit franky ~> eksportēt pilnu_nosaukumu franky ~> bash franky ~> atbalss $full_name Frenkijs M. Singhs franky ~> eksportēt full_name= "Čārlzs Lielais" franky ~> atbalss $full_name Charles the Great franky ~> iziet franky ~> atbalss $full_name Frenkijs M. Singhs franky ~>

Pirmo reizi apakšshellā mēģina nolasīt full_name vērtību, vērtība netiek iestatīta (komanda atbalss parāda tukšu rindu). Pēc iziešanas no apakščaulas mainīgais full_name tiek eksportēts uz vecākčaulu — mainīgo var eksportēt pēc tam, kad tam ir piešķirta vērtība. Pēc tam tiek palaists jauns apakščaulas, kurā tiek parādīts mainīgais, kas eksportēts no vecākčaulas. Mainīgais tiek modificēts, un tajā tiks saglabāta cita vērtība, bet vecākajā apvalkā šī mainīgā vērtība paliek nemainīga.

Rezervētie mainīgie

Bourne Reserved Shell mainīgie

Bash izmanto noteiktus čaulas mainīgos tāpat kā Bourne apvalku. Dažos gadījumos Bash piešķir mainīgajam tā noklusējuma vērtību. Zemāk redzamā tabula parāda Īss aprakstsšie vienkāršie apvalka mainīgie:

3.1. tabula. Bourne Reserved Shell mainīgie

Mainīgais nosaukums Definīcija

Ar koliem atdalītu direktoriju saraksts, ko izmanto, meklējot ceļu, izmantojot iebūvēto komandu CD.

Mājas direktorijs pašreizējais lietotājs; tiek izmantots pēc noklusējuma iebūvētajā komandā CD. Šī mainīgā vērtība tiek izmantota arī tildes rakstzīmes vietā.

Lauku atdalīšanai izmantoto rakstzīmju saraksts; izmanto, ja apvalks pēc visu aizstāšanu veikšanas sadala rezultātu atsevišķos vārdos.

Ja šis parametrs ir iestatīts uz faila nosaukumu un MAILPATH nav iestatīts, Bash informēs lietotāju, ka pasts ir saņemts norādītajā failā.

Ar kolu atdalīts failu nosaukumu saraksts, ko komandu apvalks periodiski pārbauda, ​​vai nav jaunu vēstuļu.

Pēdējā argumenta vērtība parametrā, ko apstrādā iebūvētā komanda getopts.

Pēdējā parametra argumenta rādītājs, ko apstrādāja iebūvētā komanda getopts.

Ar kolu atdalīts direktoriju saraksts, kurā apvalks meklē komandas.

Primārā uzvednes rinda. Noklusējuma vērtība ir ""\s-\v\$ ".

Sekundārā uzvednes rinda. Noklusējuma vērtība ir ""> ".

Bash rezervētie mainīgie

Šo mainīgo vērtības tiek iestatītas vai izmantotas Bash, taču citos apvalkos tās parasti netiek uzskatītas par īpašām.

3.2. tabula. Bash rezervētie mainīgie

Mainīgais nosaukums Definīcija

Šis mainīgais nosaka, kā apvalks mijiedarbojas ar lietotāju un veic uzdevumus.

Pilns ceļš, ko izmanto, lai palaistu pašreizējo Bash gadījumu.

Ja šis mainīgais ir iestatīts laikā, kad Bash tiek izsaukts, lai izpildītu skriptu, tā vērtība tiek izmantota kā starta faila nosaukums, kas jānolasa pirms skripta izpildes.

Pašreizējās Bash instances versijas numurs.

Mainīgais ir tikai lasāms masīvs, kura masīva elementi glabā informāciju par versiju šajā gadījumā Bash.

Drukājot atlasītos sarakstus, tiek izmantota iebūvētā komanda atlasiet lai noteiktu termināļa platumu. Automātiski iestatīts, saņemot signālu SIGWINCH.

$(COMP_WORDS) rādītājs uz vārdu, kas saglabā pašreizējo kursora pozīciju.

Pašreizējā komandrinda.

Rādītājs uz pašreizējo kursora pozīciju attiecībā pret pašreizējās komandas sākumu.

Mainīgais ir masīvs, kas sastāv no atsevišķiem vārdiem, kas tiek izmantoti pašreizējā komandrindā.

Mainīgais ir masīvs, no kura lasa Bašs iespējamie varianti virknes pabeigšanas, ko ģenerē čaulas funkcija, ko izsauc pakalpojums, kas paredzēts pabeigšanu programmēšanai

Mainīgais ir masīvs, kurā tiek saglabāts pašreizējais direktoriju steka stāvoklis.

Ciparu efektīvais lietotāja ID Pašreizējā lietotāja ID.

Noklusējuma redaktors, ko izmanto iebūvētajā komandā fc ir norādīts parametrs -e

Ar kolu atdalīts sufiksu saraksts, kas jāignorē, veicot automātisku faila nosaukuma pabeigšanu.

Pašlaik darbojas čaulas funkcijas nosaukums.

Ar kolu atdalīts modeļu saraksts, kas definē failu nosaukumu kopu, ko ignorēt, aizstājot failu nosaukumus.

Mainīgais ir masīvs, kurā ir saraksts ar grupām, kurām pieder pašreizējais lietotājs.

Līdz trim rakstzīmēm, kas kontrolē komandu vēstures aizstāšanu, ātru aizstāšanu un pabeigto aizstāšanu sadalīšanu marķieros.

Pašreizējās komandas numurs komandu vēsturē vai tās indekss komandu vēstures sarakstā.

Nosaka, vai komanda tiks pievienota komandu vēstures failam.

Tā faila nosaukums, kurā tiek saglabāta komandu vēsture. Noklusējuma vērtība: ~/.bash_history.

Noklusējuma maksimālais rindu skaits komandu vēstures failā ir 500.

Ar kolu atdalīts modeļu saraksts, kas nosaka, vai komanda ir jāsaglabā komandu vēstures sarakstos.

Noklusējuma maksimālais komandu skaits, ko var saglabāt komandu vēstures sarakstā, ir 500.

Satur faila nosaukumu tādā pašā formātā kā failam /etc/hosts, ko var nolasīt, kad komandas apvalkam ir jāpabeidz resursdatora nosaukums.

Pašreizējais saimniekdatora nosaukums.

Virkne, kas apraksta mašīnu, kurā darbojas Bash.

Kontrolē, ko apvalks dara, saņemot rakstzīmi kā ievades straumes beigu rakstzīmi EOF(faila beigu simbols).

Programmas Readline inicializācijas faila nosaukums, kas aizstāj noklusējuma /etc/inputrc failu.

Izmanto, lai definētu lokalizācijas kategoriju visām kategorijām, kuras nav skaidri norādītas mainīgajos, kuru nosaukumi sākas ar rakstzīmēm LC_.

Šis mainīgais ignorē LANG mainīgā vērtību un visus citus mainīgos, kas sākas ar LC_ rakstzīmēm, kas norāda lokalizācijas kategoriju.

Šis mainīgais nosaka kārtošanas secību, kas tiek izmantota, kārtojot paraugiem atbilstošus failu nosaukumus, un nosaka diapazonu interpretāciju, atbilstības klases un rakstzīmju salīdzināšanas noteikumus faila nosaukuma aizstāšanai un modeļu saskaņošanai.

Šis mainīgais nosaka, kā rakstzīmes tiek interpretētas un vai tās pieder noteiktai klasei faila nosaukuma paplašināšanai un raksta saskaņošanai.

Šis mainīgais norāda lokalizācijas kategoriju, kas tiek izmantota virkņu apstrādei dubultpēdiņas, pirms kura ir simbols $.

Šis mainīgais norāda skaitļu formāta lokalizācijas kategoriju.

Rindas numurs skriptā vai čaulas funkcijā, kas pašlaik tiek izpildīta.

Izmanto iebūvētā komanda atlasiet lai noteiktu kolonnas garumu, kurā tiek parādīti atlasītie saraksti.

Virkne, kas pilnībā apraksta sistēmas veidu, kurā darbojas Bash, izmantojot standarta GNU CPU-COMPANY-SYSTEM formātu.

Norāda sekundēs, cik bieži apvalkam ir jāpārbauda pasts failos, kas norādīti mainīgajos MAILPATH vai MAIL.

Iepriekšējais darba direktorijs iestatīts, izmantojot iebūvēto komandu CD.

Ja iestatīts uz 1, Bash parāda kļūdu ziņojumus, ko ģenerējusi iebūvētā komanda getopts.

Apraksta virkne operētājsistēma, kurā darbojas Bash.

Mainīgais ir masīvs, kas satur procesa izejas stāvokļa vērtību sarakstu pēdējā konveijerā (kas var sastāvēt no vienas komandas).

Ja šis mainīgais tiek pievienots videi, startējot bash, apvalks pāriet POSIX režīmā.

Ja šis mainīgais ir iestatīts, vērtība tiek interpretēta kā komanda, kas tiek izpildīta pirms katras primārās uzvednes rindas (PS1) izdošanas.

Šī mainīgā vērtība tiek izmantota komandai atlasiet kā uzvednes virkni. Noklusējums — "#? ""

Uzvednes virknes vērtība, kas tiek izdota pirms komandrindas, ja opcija -x ir iestatīta, lai iespējotu atbalsi komandrinda; noklusējuma vērtība ir ""+ ".

Pašreizējais darba direktorijs, kas iestatīts ar iebūvēto komandu CD.

Katru reizi, piekļūstot šim parametram, tiek ģenerēts nejaušs vesels skaitlis diapazonā no 0 līdz 32767. Šī mainīgā vērtība tiek izmantota nejaušo skaitļu ģeneratoros.

Noklusējuma mainīgais iebūvētajā komandā lasīt.

Šis mainīgais norāda sekunžu skaitu, kas pagājušas kopš komandu čaulas palaišanas.

Komandu čaulā iestatīto parametru saraksts; atdalītas ar kolu.

Palielinās par vienu katru reizi, kad tiek palaists jauns Bash gadījums.

Šī parametra vērtība tiek izmantota kā virkne, kas norāda izpildlaika informācijas izsniegšanas formātu cauruļvadiem, pirms kuriem ir rezervēts vārds laiks.

Ja mainīgajam TMOUT ir iestatīta vērtība, kas ir lielāka par nulli, tas tiek uzskatīts par noklusējuma taimautu iebūvētajā komandā lasīt. Kad komandas apvalks tiek startēts interaktīvajā režīmā, šī vērtība tiek interpretēta kā sekunžu skaits, cik ilgi apvalks gaidīs ievadi pēc sākotnējās uzvednes rindas izdošanas. Ja ievade netiek saņemta, pēc šī laika Bash iziet.

Skaitliskā vērtība, pašreizējā lietotāja reālais lietotāja ID.

Plašāku informāciju skatiet Bash rokasgrāmatā vai dokumentācijā. Daži mainīgie ir tikai lasāmi, daži tiek iestatīti automātiski, un daži kļūst bezjēdzīgi, ja tiem tiek iestatīta kaut kas cits, nevis noklusējuma vērtība.

Īpaši parametri

Komandu apvalks apstrādā dažus parametrus īpašā veidā. Šos parametrus var izmantot tikai, lai no tiem iegūtu vērtības, tiem nevar piešķirt vērtības.

3.3. tabula. Bash īpašie mainīgie

Simbols Definīcija

Atgriež pozīcijas parametrus, sākot no pirmā. Ja parametrs ir norādīts dubultpēdiņās, tas tiek aizstāts ar vienu vārdu, kas satur katra parametra vērtības, atdalot ar IFS īpašā mainīgā pirmo rakstzīmi.

Atgriež pozīcijas parametrus, sākot no pirmā. Kad parametrs ir norādīts dubultpēdiņās, katrs parametrs tiek atgriezts kā atsevišķs vārds.

Atgriež pozicionālo parametru skaitu, kas norādīts kā decimālā vērtība.

Atgriež pēdējā konveijera atgriešanās kodu, kas izpildīts priekšplāna režīmā.

Defises parametrs atgriež pašreizējā parametra karogus, kā tie tika iestatīti, kad tika izsaukta iebūvētā komanda komplekts, vai kā tos iestatījis pats apvalks (piemēram, -i).

Atgriež čaulas procesa ID.

Atgriež pēdējās fona (asinhronā) režīmā izpildītās komandas procesa ID.

Atgriež čaulas vai skripta nosaukumu.

Parametra "pasvītrojuma" vērtība tiek iestatīta, kad tiek startēts komandas apvalks, un tajā ir ietverts pilnais vārdsčaula vai skripts, kas tiek izpildīts tā, kā tas tika nodots argumentu sarakstā. Pēc tam vērtība tiks aizstāta ar iepriekšējās komandas pēdējo argumentu. Šis parametrs arī norāda pilnu ceļu uz katru izpildīto komandu, kas ievietota vidē, kas tika eksportēta uz šo komandu. Kad pasts ir atzīmēts, šis parametrs satur pasta faila nosaukumu.

Pozīcijas parametri ir vārdi, kas seko čaulas skripta nosaukumam. Tie tiek saglabāti mainīgajos lielumos $1, $2, $3 un tā tālāk. Pēc vajadzības iekšējam masīvam tiek pievienoti mainīgie. Mainīgais $# norāda kopējo parametru skaitu, kā parādīts šādā vienkāršajā skriptā:

# positional.sh # Šis skripts nolasa 3 pozīcijas parametrus un izdrukā tos. POSPAR1="$1" POSPAR2="$2" POSPAR3="$3" echo "$1 ir pirmais pozicionālais parametrs, \$1." echo "$2 ir otrais pozicionālais parametrs, \$2." echo "$3 ir trešais pozicionālais parametrs, \$3." echo echo "Kopējais pozicionālo parametru skaits ir $#."

Palaižot skriptu, varat norādīt neierobežotu skaitu argumentu:

Frenkijs ~> positional.sh viens divi trīs četri pieci viens ir pirmais pozicionālais parametrs, $1. divi ir otrais pozicionālais parametrs, $2. trīs ir trešais pozicionālais parametrs, $3. Kopējais pozicionālo parametru skaits ir 5. franky ~> positional.sh viens divi viens ir pirmais pozicionālais parametrs, $1. divi ir otrais pozicionālais parametrs, $2. ir trešais pozicionālais parametrs, $3. Kopējais pozicionālo parametru skaits ir 2.

Papildinformāciju par šo parametru izmantošanu skatiet 7. nodaļā Nosacījuma paziņojumi un sadaļā par iebūvēto komandu maiņa.

Daži citu īpašo parametru piemēri:

Franky ~> grep vārdnīca /usr/share/dict/words vārdnīca franky ~> echo $_ /usr/share/dict/words franky ~> echo $$ 10662 franky ~> mozilla & 11064 franky ~> echo $! 11064 franky ~> echo $0 bash franky ~> echo $? 0 franky ~> ls nepastāv ls: nepastāv: Nav šāda faila vai direktorija franky ~> echo $? 1 franky ~>

Lietotājs atklāts sākas, ievadot komandu grep, kas piešķir vērtību mainīgajam _ . Šīs čaulas procesa ID ir 10662. Ja kāda darba izpilde tiek pārsūtīta uz fona režīms, mainīgā! būs procesa identifikators fona darbs. Darba komandu apvalks ir bash. Ja ir pieļauta kļūda, mainīgajā? būs atgriešanas kods, kas atšķiras no 0 (nulles).

Skriptu, kuriem ir mainīgie, piemērošanas jomas paplašināšana

Papildus tam, ka skripts ir lasāmāks, mainīgie var arī palīdzēt ātri izmantot skriptu citos kontekstos vai citiem mērķiem. Apsveriet šādu piemēru — ļoti vienkāršs skripts, kas darbojas attālajā serverī rezerves kopija lietotāja mājas direktoriju atklāts:

#!/bin/bash # Šis skripts veido mana mājas direktorija dublējumu. cd /home # Tas izveido arhīvu tar cf /var/tmp/home_franky.tar franky > /dev/null 2>&1 # Vispirms noņemiet veco bzip2 failu. Pāradresācijas kļūdas, jo tas rada dažas, ja arhīvs # neeksistē. Pēc tam izveidojiet jaunu saspiestu failu. rm /var/tmp/home_franky.tar.bz2 2> /dev/null bzip2 /var/tmp/home_franky.tar # Kopējiet failu citā resursdatorā — mums ir ssh atslēgas, lai tas darbotos bez iejaukšanās. scp /var/tmp/home_franky.tar.bz2 bordeaux:/opt/backup/franky > /dev/null 2>&1 # Izveidojiet laikspiedolu žurnālfailā. datums >> /home/franky/log/home_backup.log echo dublēšana izdevās >> /home/franky/log/home_backup.log

Pirmkārt, ir lielāka iespēja kļūdīties, ja katru reizi, kad tie ir nepieciešami, manuāli norādāt failus un direktorijus. Otrkārt, pieņemsim, ka lietotājs atklāts vēlas nodot šo skriptu lietotājam Kerola, tad pirms tam Kerola varēs izmantot skriptu Rezerves kopija viņa mājas direktorija, viņam būs diezgan daudz jārediģē. Tas pats notiks, ja lietotājs atklāts vēlēsies izmantot šo skriptu citu direktoriju dublēšanai. Lai paplašinātu darbības jomu, izmantojiet mainīgos visiem failiem, direktorijiem, lietotājvārdiem, serveru nosaukumiem utt. Tad jums ir jāmaina vērtība tikai vienu reizi, un nav jāiet cauri visam skriptam, lai atrastu visas vietas, kur parādās konkrēts parametrs. Piemērs:

#!/bin/bash # Šis skripts veido mana mājas direktorija dublējumu. # Mainiet mainīgo vērtības, lai skripts darbotos jūsu labā: BACKUPDIR=/home BACKUPFILES=franky TARFILE=/var/tmp/home_franky.tar BZIPFILE=/var/tmp/home_franky.tar.bz2 SERVER=bordeaux REMOTEDIR =/ opt/backup/franky LOGFILE=/home/franky/log/home_backup.log cd $BACKUPDIR # Tas izveido arhīvu tar cf $TARFILE $BACKUPFILES > /dev/null 2>&1 # Vispirms noņemiet veco bzip2 failu. Pāradresācijas kļūdas, jo tas rada dažas, ja arhīvs # neeksistē. Pēc tam izveidojiet jaunu saspiestu failu. rm $BZIPFILE 2> /dev/null bzip2 $TARFILE # Kopējiet failu citā resursdatorā - mums ir ssh atslēgas, lai tas darbotos bez iejaukšanās. scp $BZIPFILE $SERVER:$REMOTEDIR > /dev/null 2>&1 # Izveidojiet laikspiedolu žurnālfailā. datums >> $LOGFILE atbalss dublēšana izdevās >> $LOGFILE

Strādājot ar serveri, čaula apkopo lielu informācijas daudzumu, kas nosaka tā uzvedību un piekļuvi resursiem. Dažas no šīm opcijām ir atrodamas čaulas iestatījumos, citas nosaka lietotāja ievade.

Viens veids, kā apvalks var izsekot šai informācijai, ir vide. Vide ir apgabals, kurā ir sistēmu definējoši mainīgie, kurus apvalks veido katru reizi, kad tiek sākta sesija.

Šajā apmācībā ir izskaidrots, kā mijiedarboties ar vidi un lasīt vai iestatīt vides un čaulas mainīgos interaktīvi un izmantojot konfigurācijas faili. Visas darbības tiek veiktas Ubuntu 12.04 VPS, bet jebkurā modernā Linux izplatīšana jāstrādā tāpat.

Kā darbojas vide un tās mainīgie

Katru reizi, kad tiek aktivizēta čaulas sesija, tiek sākts process, lai savāktu un apkopotu informāciju, kurai jābūt pieejamai čaulai un tā pakārtotajiem procesiem. Apvalks iegūst šos datus no daudziem dažādiem sistēmas failiem un iestatījumiem.

Kopumā vide nodrošina pārraides iespēju, kas apkopo un iestata nepieciešamos iestatījumus čaulas procesam, kas savukārt nodod tos saviem atvasinātajiem procesiem.

Videi ir virkne, kas satur atslēgu un vērtību pārus. Vairākas vērtības parasti tiek atdalītas ar kolu (:). Katrs pāris parasti izskatās apmēram šādi:

KEY=vērtība1:vērtība2:...

Ja vērtībā ir atstarpes, izmantojiet pēdiņas:

KEY="vērtība ar atstarpēm"

Šajā gadījumā atslēga nozīmē vienu no diviem mainīgajiem esošās sugas: vides vai čaulas mainīgie.

Vides mainīgie ir mainīgie, kas ir definēti pašreizējam apvalkam un tiek mantoti no visiem pakārtotajiem apvalkiem vai procesiem. Vides mainīgie tiek izmantoti, lai nodotu informāciju procesiem, kas tiek palaisti no čaulas.

Apvalka mainīgie ir mainīgie, kas ir ietverti tikai čaulā, kurā tie tika iestatīti vai definēti. Tos bieži izmanto, lai izsekotu pašreizējiem datiem (piemēram, pašreizējam darba direktorijam).

Parasti šādus mainīgos apzīmē ar lielajiem burtiem. Tas palīdz lietotājiem atšķirt vides mainīgos citos kontekstos.

Drukāšanas apvalks un vides mainīgie

Katra sesija seko savam apvalkam un vides mainīgajiem. Ir vairāki veidi, kā tos izņemt.

Lai skatītu visu vides mainīgo sarakstu, izmantojiet komandas env vai printenv. Pēc noklusējuma tie izvadīs tieši tādu pašu rezultātu:

printenv
SHELL=/bin/bash
TERM=xterm
LIETOTĀJS=demouser
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd= 40;33;01:or=40;31;01:su=37;41:sg=30;43:ca:...
MAIL=/var/mail/demouser
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
PWD=/mājas/demouser
LANG=en_US.UTF-8
SHLVL=1
HOME=/mājas/demouser
LOGNAME=demouser
LESSOPEN=| /usr/bin/lesspipe %s
LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/printenv

Šis ir tipisks komandu printenv un env izvades piemērs. Šīs komandas atšķiras tikai dažās atsevišķās funkcijās. Piemēram, printenv var pieprasīt atsevišķu mainīgo vērtības:

printenv SHELL
/bin/bash

Komanda env ļauj mainīt vidi, kurā darbojas programmas, nododot komandai mainīgo definīciju kopu, piemēram:

env VAR1="blahblah" command_to_run command_options

Kā minēts iepriekš, pakārtotie procesi parasti pārmanto vecākprocesa vides mainīgos, kas ļauj mainīt vērtības vai ieviest papildu mainīgos bērnprocesiem.

Kā redzat komandas printenv izvadē, daudzi vides mainīgie tiek izveidoti, izmantojot sistēmas faili un procesi bez lietotāja iejaukšanās.

Bet kā jūs skatāties čaulas mainīgos?

Lai to izdarītu, izmantojiet komandu set. Ievadot bez papildu parametriem, komplektā tiek uzskaitīti visi apvalka mainīgie, vides mainīgie, lokālie mainīgie un čaulas funkcijas:

komplekts
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:avota ceļš
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
. . .

Parasti šis saraksts ir diezgan garš. Lai to parādītu ērtākā formātā, atveriet to, izmantojot peidžeru programmu:

Šajā sarakstā ir milzīgs skaits Papildus informācija, kas atrodas Šis brīdis nav nepieciešams (piemēram, dažas bash funkcijas).

Lai "notīrītu" izvadi, jums ir jāpalaiž set komanda POSIX režīmā, kas apiet čaulas funkcijas. Tas ir jādara apakšapvalkā, lai nemainītu pašreizējo vidi:

(set -o posix; komplekts)

Šī darbība parādīs visus vides un čaulas mainīgos.

Varat arī salīdzināt šo izvadi ar env/printenv komandu izvadi un mēģināt uzskaitīt tikai čaulas mainīgos, taču šāds saraksts nebūs ideāls, jo šo komandu izvade ir atšķirīga:

comm -23<(set -o posix; set | sort) <(env | sort)

Sarakstā, iespējams, būs vairāki vides mainīgie, jo komanda set vērtības drukā pēdiņās, bet komandas printenv un env to nedara.

Tomēr tas ir lielisks veids, kā skatīt vides un čaulas mainīgos, kas iestatīti noteiktā sesijā.

Šādi mainīgie tiek izmantoti visu veidu mērķiem. Tie nodrošina alternatīvu veidu, kā iestatīt pastāvīgas vērtības sesijai starp procesiem, novēršot nepieciešamību veikt izmaiņas failā.

Pamatvides un apvalka mainīgie

Daži īpaši noderīgi vides un apvalka mainīgie tiek izmantoti ļoti bieži.

Tālāk ir sniegts galveno vides mainīgo saraksts:

  • SHELL: apraksta čaulu, kas interpretē ievadītās komandas. Vairumā gadījumu bash tiek instalēts pēc noklusējuma, taču šo vērtību var mainīt, ja nepieciešams.
  • JĒDZIENS: norāda termināļa veidu, kas emulēts, palaižot apvalku. Atkarībā no darbības prasībām var emulēt dažādus aparatūras termināļus. Parasti jums par to nav jāuztraucas.
  • LIETOTĀJS: pašreizējais lietotājs.
  • P.W.D.: pašreizējais darba direktorijs.
  • OLDPWD: iepriekšējais darba direktorijs. Apvalks to saglabā gadījumam, ja tiek izpildīta komanda cd -.
  • LS_KRĀSAS: definē krāsu kodus, kas tiek izmantoti, lai iekrāsotu komandas ls izvadi. Šī izvade palīdz lietotājam ātrāk nolasīt komandas rezultātu (piemēram, ātri atšķirt failu tipus).
  • PASTS: ceļš uz lietotāja pašreizējo pastkasti.
  • PATH: direktoriju saraksts, kuriem sistēma piekļūst, izpildot komandas. Kad lietotājs palaiž komandu, sistēma pārbauda šos direktorijus izpildāmā faila norādītajā secībā.
  • LANG: pašreizējie valodas un lokalizācijas iestatījumi, tostarp rakstzīmju kodējums.
  • MĀJAS: pašreizējā lietotāja mājas direktorijs.
  • _ : izpildīta pēdējā komanda.

Pēc vides mainīgo saraksta pārskatīšanas pārbaudiet čaulas mainīgo sarakstu:

  • BASHOPTS: to opciju saraksts, kas tiek izmantotas, izpildot bash. To var izmantot, lai pārbaudītu, vai vide darbojas, kā paredzēts.
  • BASH_VERSIJA: bash darbības versija cilvēkiem lasāmā formā.
  • BASH_VERSINFO: mašīnlasāma bash versija.
  • SLEJAS: norāda izvades platumu kolonnās.
  • DIRSTACK: direktoriju kaudze, kas pieejama pushd un popd komandām.
  • HISTFILESIZE: maksimālais rindu skaits komandu vēstures failā.
  • HISTSIZE: komandu skaits, kas jāatceras vēstures sarakstā.
  • HOSTNAME: pašreizējais saimniekdatora nosaukums.
  • IFS: Iekšējais ievades lauka atdalītājs komandrindā. Noklusējums ir atstarpe.
  • PS1: definē sākotnējo uzvednes rindu — komandrindas veidu, uzsākot čaulas sesiju. PS2 mainīgais iestata sekundāro uzvednes rindu, ja komanda aptver vairākas rindas.
  • SHELLOPTS: čaulas opcijas, kuras var iestatīt, izmantojot komplektu.
  • UID: pašreizējā lietotāja unikāls identifikators.

Apvalka un vides mainīgo iestatīšana

Tālāk ir sniegti daži piemēri, lai parādītu atšķirību starp apvalka un vides mainīgajiem un izskaidrotu šo mainīgo iestatīšanas sintaksi.

Shell mainīgo izveidošana

Vispirms ir jāiestata pašreizējās sesijas čaulas mainīgie. Tas tiek darīts ļoti vienkārši, viss, kas jums jādara, ir jānorāda nosaukums un vērtība. Kā jau minēts, šādu mainīgo nosaukumu rakstīšanai tiek izmantoti lielie burti.

TEST_VAR="Sveika pasaule!"

Šajā piemērā tiek izmantotas pēdiņas, jo vērtībā ir atstarpes. Turklāt šeit ir jāizmanto atsevišķas pēdiņas, jo izsaukuma zīme ir īpaša rakstzīme bash čaulā, kas piekļūst komandu vēsturei, ja vien tā nav izspiesta vai ievietota atsevišķās pēdiņās.

Tātad iegūtais čaulas mainīgais ir derīgs pašreizējā sesijā, bet netiek nodots tā pakārtotajiem procesiem.

Lai to pārbaudītu, izmantojiet komandu grep set komandas rezultātam:

komplekts | grep TEST_VAR
TEST_VAR="Sveika pasaule!"

Varat arī pārliecināties, vai šis mainīgais nav vides mainīgais, palaižot grep komandas printenv rezultātam:

printenv | grep TEST_VAR

Šī darbība nedos nekādus rezultātus.

To var izmantot, lai atklātu jebkura apvalka vai vides mainīgā vērtību.

atbalss $TEST_VAR
Sveika pasaule!

Kā redzat, lai piekļūtu mainīgā vērtībai, jums ir jāizmanto simbols $.

Atkal, iegūto mainīgo nevajadzētu nodot nevienam pakārtotajam procesam. Lai to pārbaudītu, pašreizējā čaulā izvērsiet jaunu bash čaulu:

bash
atbalss $TEST_VAR

Ja izvērsiet bērnčaulu un mēģināsiet atvērt mainīgā saturu, nekas netiks izdrukāts. Tas nozīmē, ka viss darbojas pareizi.

Lai atgrieztos sākotnējā čaulā, ierakstiet exit:

Vides mainīgo izveide

Tagad mēģiniet pārvērst apvalka mainīgo par vides mainīgo. Tas tiek darīts, eksportējot mainīgo. Komanda, kas veic eksportēšanu, tiek attiecīgi nosaukta.

Šī komanda čaulas mainīgo pārvērš par vides mainīgo. Lai pārbaudītu, vai viss ir izdarīts pareizi, varat vēlreiz apskatīt vides mainīgo sarakstu:

printenv | grep TEST_VAR
TEST_VAR=Sveika pasaule!

Tagad šis mainīgais tiek parādīts šajā sarakstā. Varat arī vēlreiz paplašināt bērna apvalku:

bash
atbalss $TEST_VAR
Sveika pasaule!

Lieliski! Bērna apvalks saņēma mainīgo no sākotnējā apvalka. Mēģiniet eksportēt vēl vienu mainīgo, pirms atstājat pakārtoto čaulu.

eksportēt NEW_VAR="Pārbaudes eksports"

Pārbaudiet, vai mainīgais ir eksportēts:

printenv | grep NEW_VAR
NEW_VAR=Pārbauda eksportēšanu

Tagad atgriezieties pie sākotnējā apvalka:

Pārbaudiet, vai šo mainīgo var atvērt:

Rezultāts netiek atgriezts

Tas notiek tāpēc, ka vides mainīgie tiek nodoti tikai bērnu procesiem. Nav iebūvēts veids, kā iestatīt vecākčaulas vides mainīgos. Vairumā gadījumu tas neļauj programmām iejaukties darbības vidē, no kuras tās tika palaistas.

Mainīgais NEW_VAR ir iestatīts kā čaulas vides mainīgais. Šis mainīgais ir derīgs šim apvalkam un tā pakārtotajiem apvalkiem un procesiem. Pēc tam, kad lietotājs atgriezās sākotnējā čaulā, šī vide tika iznīcināta.

Mainīgo pārvietošana un atiestatīšana

Mainīgais TEST_VAR joprojām ir vides mainīgais. Lai to atkal padarītu par čaulas mainīgo, ierakstiet:

eksportēt -n TEST_VAR

Tagad šis mainīgais vairs nav vides mainīgais:

printenv | grep TEST_VAR

Šis atkal ir čaulas mainīgais:

komplekts | grep TEST_VAR
TEST_VAR="Sveika pasaule!"

Lai pilnībā atiestatītu mainīgo, neatkarīgi no tā, vai tas ir vides vai čaulas mainīgais, izmantojiet komandu atiestatīt:

Pārliecinieties, vai šāds mainīgais vairs nepastāv:

Rezultāts netika izdrukāts, jo mainīgais tika atiestatīts.

Automātiski iestatot vides mainīgos

Kā jau minēts, daudzas programmas izmanto vides mainīgos, lai noteiktu, kā tām jādarbojas. Nepieciešamo mainīgo iestatīšana katru reizi, kad tiek izveidots jauns apvalks, ir diezgan neērti. Turklāt daudzi mainīgie tiek iestatīti uzreiz pēc pieteikšanās. Kā automātiski iestatīt mainīgos?

Tas ir nedaudz sarežģītāk, nekā šķiet sākumā, jo bash apvalks nolasa daudz konfigurācijas failu.

Shell sesiju veidi

Bash apvalks nolasa dažādus konfigurācijas failus atkarībā no tā, kā sesija tika sākta. Pirmie divi sesiju veidi, kas nosaka čaulu, ir sākums un bērns.

Starteris vai sākotnējais apvalks(pieteikšanās apvalks) ir čaulas sesija, kas tiek atvērta pēc lietotāja autorizācijas. Ja lietotājs piesakās terminālā vai autentificējas, izmantojot SSH, tiks atvērts startēšanas apvalks.

Ja jauna sesija tiek sākta no autorizētas (sākšanas) sesijas (kā iepriekšējos piemēros tika palaists jauns bash apvalks), šī sesija tiks meitasuzņēmums (navPieslēgties apvalks). Lai atvērtu šo sesiju, jums nav jāveic autorizācijas procedūra.

Arī čaulas sesijas var būt interaktīvas vai neinteraktīvas.

Interaktīva sesija apvalks (interaktīvais apvalks) ir sesija, kas saistīta ar termināli. Neinteraktīvā čaulas sesija ir sesija, kas nav saistīta ar termināli.

Tātad čaulas sesijas tiek klasificētas pēc šādiem aspektiem: sākums-bērns, interaktīvās-neinteraktīvās.

Parasta sesija, kas atvērta, izmantojot SSH, parasti ir interaktīva sākuma sesija. Skripts, kas tiek palaists, izmantojot komandrindu, parasti tiek palaists neinteraktīvā pakārtotā sesijā. Termināļa sesija ir atšķirīga šo divu rekvizītu kombinācija.

Klasificējot sesiju kā sākuma sesiju vai pakārtotu sesiju, sistēma saprot, kuri faili ir jālasa, lai inicializētu čaulas sesiju.

Tātad, vispirms startēšanas sesija iegūst konfigurācijas no faila /etc/profile. Pēc tam tā meklē startēšanas čaulas konfigurācijas failu lietotāja mājas direktorijā, lai iegūtu lietotāja definētas konfigurācijas.

Šī sesija nolasa failus ~/.bash_profile, ~/.bash_login un ~/.profile, bet nelasa citus failus.

Pakārtotā sesija savukārt nolasa /etc/baash.bashrc un pēc tam lietotāja ~/.bash.rc failu, lai izvietotu vidi.

Neinteraktīvās čaulas nolasa vides mainīgo BASH_ENV un norādīto failu, lai izveidotu jaunu vidi.

Kā iestatīt vides mainīgos

Kā redzat, konfigurācijas ir izkaisītas dažādos failos.

Tas padara sistēmu ļoti elastīgu, kas noder noteiktās situācijās, kad jāiestata dažādi starta un bērnu čaulu parametri. Tomēr šie apvalki parasti izmanto tos pašus iestatījumus.

Par laimi, lielākā daļa Linux izplatījumu norāda uz atvasinātās čaulas konfigurācijas failu kā startēšanas čaulas konfigurāciju avotu. Tas nozīmē, ka jūs varat definēt vides mainīgos abām sesijām bērna čaulas konfigurācijas failos.

Parasti abās čaulās tiek izmantoti lietotāja definēti vides mainīgie. Tas nozīmē, ka varat iestatīt šos mainīgos ~/.bashrc failā.

Atveriet šo failu:

Visticamāk, tajā jau ir daži dati. Lielākā daļa šeit iestatīto vērtību ir bash opcijas, un tām nav nekā kopīga ar vides mainīgajiem. Mainīgie šajā failā ir iestatīti tieši tāpat kā komandrindā:

eksportēt VARNAME=vērtība

Pēc visu nepieciešamo mainīgo ievadīšanas aizveriet failu. Nākamajā reizē, kad sākat čaulas sesiju, šeit iestatītie mainīgie tiks nolasīti un nodoti čaulas videi. Lai liktu pašreizējai sesijai lasīt doto failu, ievadiet:

avots ~/.bashrc

Lai iestatītu visas sistēmas mainīgos, pievienojiet tos mapei /etc/profile, /etc/bash.bashrc vai /etc/environment.

Rezultāti

Apvalka un vides mainīgie vienmēr ir pieejami visās čaulas sesijās, tāpēc ir īpaši noderīgi zināt, kā ar tiem strādāt. Tos var izmantot, lai nodotu vecāku procesu konfigurācijas pakārtotajiem procesiem, kā arī konfigurētu iestatījumus ārpus failiem.

Tas noteiktās situācijās sniedz vairākas priekšrocības. Piemēram, daži izvietošanas mehānismi paļaujas uz vides mainīgajiem, lai konfigurētu autentifikācijas informāciju. Tas ir ērti, jo šādi svarīgi dati netiks saglabāti nevienā failā, kas nozīmē, ka tie tiks droši aizsargāti no nepiederošām personām.

Ir daudzas citas biežākas situācijas, kurās jums var būt nepieciešams lasīt mainīgos vai mainīt sistēmas vidi. Šajā rokasgrāmatā aprakstītie rīki un paņēmieni nodrošina lielisku pamatu, lai attīstītu prasmes strādāt ar mainīgajiem lielumiem un pareizi tos izmantot.

Birkas: ,

Vides mainīgie operētājsistēmā Linux ir īpaši mainīgie, ko nosaka apvalks un kurus izpildes laikā izmanto programmas. Tos var definēt sistēma un lietotājs. Linux sistēmas vides mainīgos lielumus nosaka sistēma un izmanto sistēmas līmeņa programmas.

Piemēram, komanda PWD izmanto sistēmas mainīgo, lai saglabātu iepriekšējo darba direktoriju. Lietotāja vides mainīgos uz laiku vai pastāvīgi iestata lietotājs pašreizējam apvalkam. Visa čaulas mainīgo pievienošanas un noņemšanas koncepcija ir saistīta ar vairākiem failiem, komandām un dažādiem apvalkiem.

Plašāk runājot, vides mainīgais var būt trīs veidu:

1. Lokālie vides mainīgie

Šie mainīgie ir definēti tikai pašreizējai sesijai. Pēc sesijas beigām tie tiks neatgriezeniski dzēsti neatkarīgi no tā, vai tā ir attālā piekļuve vai termināļa emulators. Tie netiek saglabāti nevienā failā, bet tiek izveidoti un dzēsti, izmantojot īpašas komandas.

2. Pielāgoti apvalka mainīgie

Šie čaulas mainīgie operētājsistēmā Linux ir definēti konkrētam lietotājam un tiek ielādēti katru reizi, kad lietotājs piesakās, izmantojot vietējo termināli, vai izveido savienojumu attālināti. Šādi mainīgie parasti tiek glabāti konfigurācijas failos: .bashrc, .bash_profile, .bash_login, .profile vai citos failos, kas atrodas lietotāja direktorijā.

3. Sistēmas vides mainīgie

Šie mainīgie ir pieejami visā sistēmā visiem lietotājiem. Tie tiek ielādēti sistēmas startēšanas laikā no sistēmas konfigurācijas failiem: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Linux vides mainīgo konfigurācijas faili

Šeit mēs ātri apskatīsim dažādus iepriekš uzskaitītos konfigurācijas failus, kas tiek izmantoti, lai konfigurētu vides mainīgos visai sistēmai vai konkrētam lietotājam.

.bashrc

Šis ir lietotājam raksturīgs mainīgā fails. Ielādē katru reizi, kad lietotājs izveido termināļa sesiju, tas ir, citiem vārdiem sakot, atver jaunu termināli. Visi šajā failā izveidotie vides mainīgie stājas spēkā katru reizi, kad tiek sākta jauna termināļa sesija.

.bash_profile

Šie mainīgie stājas spēkā katru reizi, kad lietotājs izveido attālu savienojumu, izmantojot SSH. Ja šī faila trūkst, sistēma meklēs .bash_login vai .profile.

/etc/environment

Šis fails ir paredzēts jebkuru vides mainīgo izveidei, rediģēšanai un dzēšanai sistēmas līmenī. Šajā failā izveidotie vides mainīgie ir pieejami visai sistēmai, katram lietotājam un pat tad, ja tiek izveidots attālināts savienojums.

/etc/bash.bashrc

Sistēma bashrc. Šis fails tiek izpildīts katram lietotājam katru reizi, kad viņš izveido jaunu termināļa sesiju. Tas darbojas tikai vietējiem lietotājiem; ja ir izveidots savienojums, izmantojot internetu, šādi mainīgie lielumi nebūs redzami.

/etc/profils

Sistēmas faila profils. Visi mainīgie no šī faila ir pieejami jebkuram lietotājam sistēmā tikai tad, ja viņš ir attālināti pieteicies. Bet tie nebūs pieejami, veidojot lokālo termināļa sesiju, tas ir, ja vienkārši atverat termināli.

Visus Linux vides mainīgos, kas izveidoti, izmantojot šos failus, var noņemt, vienkārši izdzēšot tos no turienes. Tikai pēc katrām izmaiņām jums ir vai nu jāiziet un jāpiesakās, vai arī jāpalaiž šī komanda:

avota faila nosaukums

Lietotāja un sistēmas vides mainīgo pievienošana operētājsistēmā Linux

Tagad, kad jūs zināt nedaudz teorijas, pāriesim pie prakses. Vietējos vides mainīgos operētājsistēmā Linux var izveidot ar šādām komandām:

var=vērtība
$ eksportēt var=vērtība

Šie mainīgie būs pieejami tikai pašreizējā termināļa sesijā.

Lai noņemtu vides mainīgos, varat izmantot vairākas komandas:

1. Izmantojot env

Pēc noklusējuma varat izmantot env, lai skatītu visus iestatītos vides mainīgos. Bet ar opciju -i tas ļauj īslaicīgi noņemt visus apvalka mainīgos un izpildīt komandu bez mainīgajiem.

env –i komanda

Var ir jebkurš mainīgais, kuru vēlaties nodot šai komandai.

Šī komanda sāks čaulu bez vides mainīgajiem vispār:

Pēc šādas vides palaišanas neviens mainīgais nebūs pieejams, bet pēc iziešanas viss atgriezīsies savās vietās.

2. Izmantojot atiestatītu

Šis ir vēl viens veids, kā noņemt Linux vides mainīgos. Unset noņem mainīgo pēc nosaukuma līdz pašreizējās sesijas beigām:

atiestatīts mainīgā_nosaukums

3. Iestatiet mainīgā vērtību uz ""

Šis ir vienkāršākais veids, kā noņemt vides mainīgos operētājsistēmā Linux; iestatot mainīgo kā tukšu, jūs to noņemat uz atlikušo pašreizējās sesijas laiku.

Piezīme. Izmantojot šīs metodes, varat mainīt sistēmas vai lietotāja mainīgo vērtības, taču tās būs svarīgas tikai pašreizējai sesijai.

Lietotāja un sistēmas vides mainīgo izveide

Šajā sadaļā mēs apskatīsim, kā iestatīt un dzēst sistēmas un lietotāja mainīgos ne tikai pašreizējai sesijai, bet arī tā, lai efekts saglabātos pēc atkārtotas palaišanas.

1. Iestatiet un noņemiet lokālos mainīgos operētājsistēmā Linux

Izveidosim lokālo mainīgo VAR un iestatīsim tam jebkuru vērtību, pēc tam atiestatīsim to un pārliecināsimies, ka tas ir izdzēsts:

VAR1="Zaudēts"
$ echo $VAR1
$atiestatīts VAR1
$ echo $VAR1

Vēl viens veids, kā izveidot mainīgo, ir ar eksporta komandu. Noņemsim to, piešķirot tukšu vērtību:

eksportēt VAR="Lost"
$ echo $VAR
$VAR=
$ echo $VAR

Tagad izveidosim mainīgo VAR2 un piešķirsim tam vērtību. Un pēc tam uz laiku noņemiet visus vietējos mainīgos, palaižot env -i. Tas sāks apvalku bez mainīgajiem. Pēc izejas ievadīšanas visi mainīgie tiks atjaunoti.

VAR2="Zaudēts"
$ echo $VAR2
$ env -i bash
$ echo $VAR2

Lietotāja mainīgo iestatīšana un noņemšana

Rediģējiet .bashrc failu savā mājas direktorijā, pievienojot eksporta komandu, lai eksportētu vajadzīgo mainīgo. Pēc tam palaidiet avota komandu, lai lietotu izmaiņas. Izveidosim, piemēram, CD mainīgo:

Pievienojiet šo rindiņu (o, pēc tam ielīmējiet, pēc tam Esc un :wq):

eksportēt CD = "Šīs ir pazudis mājas"

Tagad atliek atjaunināt konfigurāciju:

avots.bashrc
$echo $CD

Lai noņemtu šo mainīgo, vienkārši noņemiet to no faila .bashrc.

Tagad pievienosim vides mainīgo, izmantojot .bash_profile. Šis mainīgais, kā jūs jau zināt, būs pieejams tikai attālās pieteikšanās laikā:

vi .bash_profile

Pievienojiet rindu:

export VAR2="Šī ir pazudusī māja"

Un palaidiet šīs komandas, lai lietotu izmaiņas un pārbaudītu, vai mainīgais ir pievienots:

source.bash_profile
$ echo $VAR2

Mainīgais nav pieejams, jo esat izveidojis lokālo termināļa sesiju, tagad izveidojiet savienojumu, izmantojot ssh:

ssh lietotājs@localhost
$ echo $VAR2

Šo vides mainīgo var izdzēst tāpat kā iepriekšējā gadījumā, izdzēšot to no faila.

komentēt: Šie mainīgie ir vienmēr pieejami, bet ne visiem lietotājiem.

Sistēmas vides mainīgo iestatīšana un noņemšana

Izveidosim mainīgo, kas pieejams visiem lietotājiem visās termināļa sesijās, izņemot attālās, pievienojot to failam /etc/bash.profile:

vi /etc/bash.profile

export VAR="Šis ir visas sistēmas mainīgais"

Pēc tam mēs atjauninām:

avots /etc/bash.bashrc

Tagad šis mainīgais ir pieejams visiem lietotājiem visos termināļos:

atbalss $VAR
$sudo su
$ echo $VAR
$su -
$ echo $VAR

Ja vēlaties padarīt vides mainīgo pieejamu visiem lietotājiem, kuri attālināti izveido savienojumu ar šo iekārtu, rediģējiet failu /etc/profile:

export VAR1="Šis ir visas sistēmas mainīgais tikai attālām sesijām"

Atjauniniet konfigurāciju un pārbaudiet mainīgā pieejamību, tas būs pieejams tikai attālināti:

avots /etc/profile
$ echo $VAR1

Ja jums ir jāpievieno vides mainīgais operētājsistēmā Linux, lai tas būtu pieejams gan attālināti, gan vietējām sesijām, eksportējiet to uz /etc/environon:

vi /etc/environment

export VAR12="Esmu pieejams visur"

Mēs pārbaudām:

avots /etc/environment
$ echo $VAR12
$sudo su
$ echo $VAR12
$ izeja
$ssh localhost
$ echo $VAR12

2.2. Vides mainīgie

Operētājsistēma atbalsta īpašu resursu veidu, ko sauc Vides mainīgie (vides mainīgie). Šie mainīgie ir pāris NOSAUKUMS — VALUE . Nosaukums var sākties ar burtu un sastāv no burtiem, cipariem un pasvītrojumiem.

Lai komandrindā aizstātu mainīgā vērtību, pirms mainīgā nosaukuma ievadiet zīmi $:

$ echo $USER viesis

Ja mainīgais nav iestatīts, tiek atgriezta tukša virkne.

Lai iestatītu mainīgā lieluma vērtību, izmantojiet piešķiršanas operatoru (Bornam līdzīgu čaulu gadījumā):

$TEST=tests

vai iebūvētais komplekta operators (C veida gadījumā):

$ set TEST=tests

Komanda set bez argumentiem uzskaita visu vidē iestatīto mainīgo vērtības:

$ set COLUMNS=197 CVS_RSH=ssh DIRSTACK=() EUID=1000 GROUPS=() G_BROKEN_FILENAMES=1 HISTFILE=/home/guest/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 MĀJAS=/mājas/MĀJAS NOSAUKUMS=my6st8 =$" \t\n" INPUTRC=/etc/inputrc KDEDIR=/usr KDEDIRS=/home/guest/.local/ KDE_IS_PRELINKED=1 KDE_NO_IPV6=1 LANG=ru_RU.UTF-8 LESSOPEN="|/usr/bin/ lesspipe.sh %s" LINES=65 LOGNAME=viesis ....

Mainīgie var būt lokāli konkrētam procesam vai globāli sesijai. Varat iestatīt mainīgo lielumu vietējās vērtības, pirms tiem izsaucot komandas:

$ TEST=test1 sh -c "echo $TEST" test1

Varat novērtēt sesijas mainīgo lielumu kopas saturu, izsaucot tulka iebūvēto komandu env Bornam līdzīgu tulku gadījumā (sh, ksh, bash, zsh, pdksh...) un printenv gadījumā C-Shell klonu tulki (csh, tcsh. ..):

$ env HOSTNAME=myhost TERM=xterm SHELL=/bin/bash HISTSIZE=1000 KDE_NO_IPV6=1 SSH_CLIENT=172.16.0.9 50487 22 QTDIR=/usr/lib/qt-3.3 QTINC=/usr-3SHT3 =/dev/pts/6 USER=viesis MOZILLA_CERTIFICATE_FOLDER=/home/guest/.evolution/ KDEDIR=/usr MAIL=/var/spool/mail/guest PATH=/usr/games:/usr/local/bin:/bin :/usr/bin:/home/guest/bin INPUTRC=/etc/inputrc PWD=/home/guest KDE_IS_PRELINKED=1 LANG=ru_RU.UTF-8 KDEDIRS=/home/guest/.local/ SSH_ASKPASS=/usr/libexec /openssh/gnome-ssh-askpass SHLVL=1 HOME=/home/guest LOGNAME=viesis QTLIB=/usr/lib/qt-3.3/lib CVS_RSH=ssh SSH_CONNECTION=172.16.0.9 50487 172.16.2.2.2. /bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/bin/env

Komandu kopas Apvalks var tikt apkopoti komandu failos, ko sauc par skriptiem, kur īpaša veida komentāra pirmajā rindā ir norādīts komandu tulks šīs kopas izpildei. Piemēram, izveidosim failu teksta redaktorā ar nosaukumu test ar šādu saturu:

#!/bin/sh echo TEST mainīgais: echo $TEST

Šī programma standarta izvadē izdrukās teksta ziņojumu "TEST mainīgais: " un TEST mainīgā vērtību, ja tas ir norādīts. Varat to palaist no komandrindas, nosūtot to kā parametru komandu tulkam:

$sh testa TEST mainīgais:

Varat izveidot globālu mainīgo, izmantojot eksporta (Bourne) vai setenv (C-SHell) priekšrakstu:

$ eksportēt TEST=test1 $ sh testa TEST mainīgais: test1

Varat iestatīt vietējās mainīgo vērtības noteiktas programmas izpildei, pirms tām izsaucot komandas:

$ TEST=test2 sh test TEST mainīgais: test2

Vides mainīgo noņemšana tiek veikta, izmantojot unset paziņojumu.

Parametra jēdziens apvalkā bash līdzīgi mainīgā jēdzienam parastajās programmēšanas valodās. Parametra nosaukums (vai identifikators) var būt vārds, kas sastāv no alfabēta rakstzīmēm, cipariem un pasvītrām (tikai vārda pirmā rakstzīme nevar būt cipars), cipars vai viena no šīm īpašajām rakstzīmēm: * , @ , # , ? , - (defise), $ , ! , 0 , _ (pasvītrojums).

Tiek uzskatīts, ka parametrs ir iestatīts vai iestatīts, ja tam ir piešķirta vērtība. Vērtība var būt arī tukša virkne. Lai parādītu parametra vērtību, izmantojiet simbolu $ pirms viņa vārda. Jā, komanda

$ atbalss vārds

parādīs vārdu ekrānā nosaukums, un komanda

$echo $name

atgriezīs nosaukuma mainīgā vērtību (ja tāds ir iestatīts, protams).

5.6.1. Parametru daudzveidība

Parametri ir sadalīti trīs klasēs: pozicionālie parametri, speciālie parametri(kuru nosaukumi ir tikko uzskaitītās īpašās rakstzīmes) un čaulas mainīgie.

Vārdi (identifikatori) pozicionālie parametri sastāv no viena vai vairākiem cipariem (nevis vienas nulles). Pozicionālo parametru vērtības ir argumenti, kas tika doti, kad sākās čaula (pirmais arguments ir pozicionālā parametra 1 vērtība utt.). Pozicionālā parametra vērtību var mainīt, izmantojot iebūvēto komandu komplekts. Šo parametru vērtības arī mainās, kamēr apvalks izpilda kādu no funkcijām (tas tiks apspriests tālāk, sadaļā sadaļā 5.8).

Īpaši parametri ir modeļi, kuru aizstāšana (aizvietošana) tiek veikta šādi.

5.2. tabula.Īpaši parametri.

Parametrs

Aizstāšanas noteikumi

Aizstāts ar pozicionālajiem parametriem, sākot no pirmā. Ja aizstāšana tiek veikta dubultpēdiņās, šis parametrs tiek aizstāts ar vienu vārdu, kas sastāv no visiem pozicionālajiem parametriem, kas atdalīti ar īpašā IFS mainīgā pirmo rakstzīmi (apskatīts tālāk). Tas ir, ``$*"" ir ekvivalents ``$1c$2c...", kur c ir pirmā rakstzīme IFS mainīgā vērtībā. Ja IFS ir iestatīts uz tukšu vai nav iestatīta vērtība, parametri tiek atdalīti ar atstarpēm

Aizstāts ar pozicionālajiem parametriem, sākot no pirmā. Ja aizstāšana tiek veikta dubultpēdiņās, tad katrs parametrs tiek aizstāts ar atsevišķu vārdu. Tādējādi `` $@"" ir ekvivalents ""$1"" ""$2"" ... Ja nav pozicionālo parametru, tad vērtība netiek piešķirta (parametrs @ vienkārši tiek noņemts)

Aizstāts ar pozīcijas parametru skaita decimālo vērtību

Aizstāts ar pēdējā palaitā priekšplāna programmas kanāla izejas statusu

(defise)

Aizstāts ar pašreizējo karoga vērtību kopu, kas iestatīta, izmantojot iebūvēto komandu komplekts vai iedarbinot pašu apvalku

Aizstāts ar čaulas procesa identifikatoru (P ID).

Aizstāts ar pēdējās izpildītās fona komandas (asinhroni izpildītās) procesa identifikatoru (P ID)

Aizstāts ar izpildāmās čaulas vai skripta nosaukumu. Ja bash darbojas, lai izpildītu sērijveida failu, $0 ir faila nosaukums. Pretējā gadījumā šī vērtība ir vienāda ar pilnu ceļu uz apvalku

(pasvītrot)

Aizstāts ar iepriekšējās izpildītās komandas pēdējo argumentu (ja tas ir parametrs vai mainīgais, tā vērtība tiek aizstāta)

Iepriekš tabulā uzskaitītie īpašie parametri atšķiras ar to, ka uz tiem var tikai atsaukties; Jūs nevarat tiem piešķirt vērtības.

Mainīgs no čaulas viedokļa tas ir parametrs, kas apzīmēts ar nosaukumu. Vērtības tiek piešķirtas mainīgajiem, izmantojot šādu operatoru:

$nosaukums=vērtība

Kur nosaukums ir mainīgā nosaukums un vērtību— tai piešķirtā vērtība (var būt tukša virkne). Mainīgā nosaukums var sastāvēt tikai no cipariem un burtiem, un tas nevar sākties ar cipariem. Vērtība var būt jebkurš teksts. Ja vērtība satur īpašās rakstzīmes, tā ir jāiekļauj pēdiņās. Piešķirtajā vērtībā, protams, šīs pēdiņas nav. Ja mainīgais ir iestatīts, to var noņemt, izmantojot čaulas iebūvēto komandu atiestatīts.

Visu iestatīto čaulas mainīgo kopu ar tām piešķirtajām vērtībām sauc par vidi vai čaulas vidi. To var apskatīt, izmantojot komandu komplekts bez parametriem (tikai varbūt jums vajadzētu organizēt cauruļvadu "iestatīt | mazāk"). Šīs komandas izvadā ir uzskaitīti visi vides mainīgie alfabētiskā secībā. Lai skatītu viena konkrēta mainīgā vērtību, komandas vietā var komplekts(kuras izvadā joprojām varat meklēt un meklēt vajadzīgo mainīgo) varat izmantot komandu

$echo $name

(tomēr šajā gadījumā jums jāzina interesējošā mainīgā nosaukums).

Starp mainīgajiem, ko redzēsit komandas izvadē, ir komplekts, ir daži ļoti interesanti mainīgie. Piemēram, pievērsiet uzmanību mainīgajam RANDOM. Ja palaižat komandu vairākas reizes pēc kārtas

$ echo $RANDOM

katru reizi iegūsit jaunu vērtību. Fakts ir tāds, ka šis mainīgais atgriež nejaušu veselu skaitli no intervāla 0–32 768.

5.6.2. Korpusa uzvednes

Vienam no ļoti svarīgajiem mainīgajiem ir nosaukums PS1. Šis mainīgais norāda uzaicinājuma veidu bash Izvada, kad tā gaida nākamo komandu, ko ievadīs lietotājs. Pēc noklusējuma šis mainīgais ir iestatīts uz "\s-\v\$". Patiesībā iekšā bash Ir četri ielūgumi, kas tiek izmantoti dažādās situācijās. Mainīgs PS1 norāda uzvednes veidu, kas tiek izdota, kad apvalks gaida komandas ievadīšanu. Sekundārā uzvedne, ko nosaka mainīgais PS2, parādās, kad apvalks gaida, kad lietotājs ievadīs vēl dažus datus, kas nepieciešami, lai turpinātu palaist komandu vai programmu. Noklusējuma mainīgais PS2 ir nozīme" >" . Iespējams, jūs jau redzējāt šo uzvedni, kad palaidāt komandu kaķis lai ievadītu datus no tastatūras failā. Vēl viens piemērs ir komanda ftp, pēc kuras palaišanas arī ielūgums tiek iegūts šajā formā.

Mainīga uzvedne PS3, ko izmanto komandā atlasiet. Mainīga uzvedne PS4, tiek izdrukāts pirms katras komandas bash uzrauga izpildes gaitu. Noklusējuma vērtība ir " + ".

Ja vēlaties, varat mainīt mainīgo veidu PS1 Un PS2. Šajā gadījumā var izmantot jebkurus no tastatūras ievadītos simbolus, kā arī noteiktu skaitu speciālo rakstzīmju, kuras, ģenerējot uzvednes virkni, tiek atkodētas saskaņā ar tabulu. 5.3 (piemēram, mēs uzskaitām tikai dažus no tiem; pilnu sarakstu skatiet utilīta man lapā bash) .

5.3. tabula.Īpašas rakstzīmes ielūguma ģenerēšanai

Simbols

Tās nozīme

Pīkstiens (ASCII kods 07)

Datums formātā "Diena, mēnesis, diena", piemēram, trešdiena, okt., 17.

Saimniekdatora nosaukums līdz pirmajam punktam

Pilns saimniekdatora nosaukums

Pašreizējais laiks 24 stundu formātā: HH:MM:SS (stundas:minūtes:sekundes)

Pašreizējais laiks 12 stundu formātā: HH:MM:SS

Pašreizējais laiks 12 stundu formātā am/pm

Tā lietotāja vārds, kurš sāka čaulu

Pašreizējā darba direktorija pilns nosaukums (sākot no saknes)

Pašreizējais darba direktorijs (nav norādīts ceļš)

Simbols #, ja apvalks darbojas kā superlietotājs, un simbols $ , ja čaulu palaida parasts lietotājs.

\nnn

Rakstzīme ar oktālo kodu nnn

Jauna rinda (rindas plūsma)

Korpusa nosaukums

Pašreizējais komandas numurs

Slīpsvītra

Nedrukājošo rakstzīmju secības sākums (šo rakstzīmi var izmantot, lai rīka padoma tekstā iekļautu termināļa vadības rakstzīmju secību)

Nedrukājamo rakstzīmju secības beigas

Šīs komandas sērijas numurs komandu vēsturē

Pašreizējās komandas numurs (pašreizējā sesijā izpildāmās komandas sērijas numurs) var atšķirties no šīs komandas numura komandu vēstures sarakstā, jo pēdējais ietver komandas, kas tika saglabātas komandu vēstures failā.

Kad apvalks ir nolasījis mājienu definējošā mainīgā vērtību, to var aizstāt saskaņā ar noteikumiem par parametru paplašināšanu, aizstāšanu komandu nosaukumos un aritmētiskajās izteiksmēs, kā arī vārdu sadalīšanu. Šie noteikumi tiks apspriesti turpmāk sadaļā. 5.7.

Piemēram, pēc komandas izpildīšanas (tā kā virknē ir atstarpe, pēdiņas ir nepieciešamas)

# PS1="[\u@\h \W]\$"

standarta uzvednē tiks parādīta kvadrātiekava, lietotājvārds, simbols @ , datora nosaukums, atstarpe, pašreizējā direktorija nosaukums (bez ceļa), beigu kvadrātiekava un simbols $ (ja čaulā darbojas vienkāršs lietotājs) vai # (ja apvalks darbojas kā root).

5.6.3 Mainīgs PATH

Vēl vienam ļoti svarīgam mainīgajam ir nosaukums PATH. Tas norāda ceļu sarakstu uz direktorijiem, kuros bash meklē failus (jo īpaši failus ar komandām) gadījumos, kad komandrindā nav norādīts pilns faila ceļš. Atsevišķi katalogi šajā sarakstā ir atdalīti ar koliem. Noklusējuma mainīgais PATH ietver direktorijus /usr/local/bin, /bin, /usr/bin, /usr/X11R6/bin, i., tas izskatās šādi:

/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:

Lai šim sarakstam pievienotu direktoriju, jums ir jāpalaiž šāda komanda:

# PATH=$PATH:jauns_ceļš.

Veicot meklēšanu, apvalks meklē direktorijus tādā secībā, kādā tie ir norādīti mainīgajā PATH.

Ņemiet vērā, ka šajā sarakstā varat iekļaut pašreizējo direktoriju, pievienojot punktu PATH mainīgajam. Tomēr tas nav ieteicams drošības apsvērumu dēļ: uzbrucējs var ievietot komandu publiskā direktorijā, kuras nosaukums sakrīt ar kādu no komandām, kuras bieži izpilda superlietotājs, bet veic pavisam citas darbības (īpaši, ja pašreizējais direktorijs atrodas faila sākumā). meklēšanas ceļu saraksts).

5.6.4 Mainīgs IFS

Šis mainīgais norāda iekšējo lauku atdalītāju, kas tiek izmantots vārdu sadalīšanas operācijā komandrindas konvertēšanai, ko veic čaula pirms komandrindas palaišanas izpildei. Šī mainīgā noklusējuma vērtība ir "<Пробел><Символ_ новой_ строки>".

5.6.5 Pašreizējie un mājas direktoriji

Pašreizējā direktorija nosaukums tiek saglabāts vides mainīgajā (ar nosaukumu PWD), un šī mainīgā vērtība mainās katru reizi, kad programma tiek startēta. CD(un arī mainot pašreizējo direktoriju jebkādā citā veidā, piemēram, izmantojot Midnight Commander).

Tāpat HOME mainīgajā tiek saglabāts tā lietotāja mājas direktorijas pilns nosaukums (un ceļš), kurš uzsāka procesu.

5.6.6 Komanda eksportēt

Kad apvalks palaiž programmu vai komandu, tas nodod tiem dažus vides mainīgos. Lai vides mainīgais tiktu nodots procesam, kas palaists no čaulas, tas jāiestata, izmantojot īpašu komandu eksportēt, t.i., tā vietā

$nosaukums=vērtība

vajag to pierakstīt

$eksporta nosaukums=vērtība

Šajā gadījumā visām programmām, kas tiek palaistas no čaulas (ieskaitot pašas čaulas sekundāros gadījumus), būs piekļuve šādā veidā definētajiem mainīgajiem, t.i., tās var saukt savas vērtības pēc nosaukuma.

V. Kostromins (kos at rus-linux dot net) - 5,6. Parametri un mainīgie. Shell vide