Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 27

Автор ΠœΡΡ‚ΡŒΡŽ НСйл

classic&gt; <b>echo $version</b>

classic

classic&gt; <b>. /latest_set</b>

latest version&gt; <b>echo $version</b>

latest

latest version&gt;

Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ "Ρ‚ΠΎΡ‡ΠΊΠ°", поэтому ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… выполняСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅. Π­Ρ‚ΠΎ позволяСт ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ окруТСния Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, которая сохраняСт измСнСния Π΄Π°ΠΆΠ΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сцСнарий Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ.

echo

НСсмотря Π½Π° ΠΏΡ€ΠΈΠ·Ρ‹Π² Π³Ρ€ΡƒΠΏΠΏΡ‹ Π₯/Open ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² соврСмСнных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

printf
, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ общСпринятой ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ использования ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
echo
для Π²Ρ‹Π²ΠΎΠ΄Π° строки с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку.

ΠŸΡ€ΠΈ этом Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ общая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ символа ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку. К соТалСнию, Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ОБ UNIX Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ ОБ Linux общСпринятый ΠΌΠ΅Ρ‚ΠΎΠ΄

echo -n &quot;string to output&quot;

Но Π²Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ

echo -Π΅ &quot;string to output\c&quot;

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

echo -Π΅
рассчитан Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ задСйствована интСрпрСтация символов escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ слэша, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ
\c
для подавлСния Π½ΠΎΠ²ΠΎΠΉ строки,
\t
для Π²Ρ‹Π²ΠΎΠ΄Π° табуляции,
\n
для Π²Ρ‹Π²ΠΎΠ΄Π° символов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π’ Π±ΠΎΠ»Π΅Π΅ старых вСрсиях bash этот Ρ€Π΅ΠΆΠΈΠΌ установлСн ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° Π² Π±ΠΎΠ»Π΅Π΅ соврСмСнных вСрсиях интСрпрСтация символов escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ слэшСм ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ свСдСния ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ вашСго дистрибутива ΠΈΡ‰ΠΈΡ‚Π΅ Π½Π° страницах ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ справочного руководства.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π»Π΅Π³ΠΊΠΎ пСрСносимый способ удалСния Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ строки, для избавлСния ΠΎΡ‚ Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ внСшнСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

tr
, Π½ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. Если вашим систСмам UNIX Π½ΡƒΠΆΠ½Π° ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ строки, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
printf
. Если ваши сцСнарии ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ОБ Linux ΠΈ bash, Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚
echo -n
, хотя, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, придСтся Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» со строки
#!/bin/bash
для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² явной Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ рассчитываСтС Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² стилС bash.

eval

Команда eval позволяСт Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. Она встроСна Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ прСдставлСна ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π›ΡƒΡ‡ΡˆΠ΅ всСго Π΅Π΅ дСйствиС дСмонстрируСт ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, позаимствованный нСпосрСдствСнно ΠΈΠ· стандарта X/Open.

foo=10

x=foo

Ρƒ='$'$Ρ…

echo $Ρƒ

Π‘ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ

$foo
. Однако код

foo=10

x=foo

eval Ρƒ='$'$Ρ…

echo $Ρƒ

Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран 10. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,

eval
Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ
$
: ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Команда

eval
ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Π°, Ρ‚.ΠΊ. позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° Π»Π΅Ρ‚Ρƒ. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ услоТняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ сцСнария, Π½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слоТно ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

exec

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

exec
Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° примСнСния. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

НапримСр, строка

exec wall &quot;Thanks for all the fish&quot;

Π² сцСнарии Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

wall
. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
exec
, Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ командная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠ°Ρ сцСнарий, большС Π½Π΅ сущСствуСт.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ примСнСния

exec
β€” модификация Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… дСскрипторов Ρ„Π°ΠΉΠ»ΠΎΠ².

exec 3&lt; afile

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ дСскриптор 3 для чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π° afile. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

exit n

Команда

exit
Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сцСнария с ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ
<i>n</i>
.
Если Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π΅ Π² строкС подсказки ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΡ любой ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΠ½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ ΠΈΠ· систСмы. Если Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ Π±Π΅Π· указания ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, статус послСднСй Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π² сцСнарии ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ считаСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ стилСм программирования.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сцСнариСв Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ ΠΊΠΎΠ΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ 0 β€” ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сцСнария, ΠΊΠΎΠ΄Ρ‹ ΠΎΡ‚ 1 Π΄ΠΎ 125 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ β€” ΠΊΠΎΠ΄Ρ‹ ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² сцСнариях. ΠžΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ значСния Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² соотвСтствии с Ρ‚Π°Π±Π». 2.5.

Π’Π°Π±Π»ΠΈΡ†Π° 2.5

Код Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ОписаниС
126 Π€Π°ΠΉΠ» Π½Π΅ являСтся исполняСмым
127 Команда нС найдСна
128 ΠΈ Π²Ρ‹ΡˆΠ΅ Появившийся сигнал

Многим программистам Π½Π° языках Π‘ ΠΈ Π‘++ использованиС нуля ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСсколько Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ прСимущСство сцСнариСв β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния 125 ΠΊΠΎΠ΄ΠΎΠ² ошибок, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈ отсутствиС нСобходимости Π² глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ для хранСния ΠΊΠΎΠ΄Π° ошибки.

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Ссли Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сущСствуСт Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ .profile.

#!/bin/sh

if [ -f .profile ]; then

Β exit 0

fi

exit 1

Если Π²Ρ‹ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒ острых ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарий Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ И-списка ΠΈ Π˜Π›Π˜-списка, описанных Ρ€Π°Π½Π΅Π΅:

[ -f .profile ] &amp;&amp; exit 0 || exit 1

export

Команда

export
Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, доступной Π² ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, созданныС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅, Π½Π΅ доступны Π² Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…, запускаСмых ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ. Команда
export
создаСт ΠΈΠ· своСго ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния, которая Π²ΠΈΠ΄Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ сцСнариям ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, запускаСмым ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Говоря ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ языком, экспортируСмыС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния Π² Π»ΡŽΠ±Ρ‹Ρ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… процСссах, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΎΠΉ. Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… сцСнариСв:
export1
ΠΈ
export2
(ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.14).