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

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

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

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

#!/bin/sh


if [ -f .profile ]; then

 exit 0

fi

exit 1

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

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

export

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

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 2.14. Экспорт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

1. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ прСдставим сцСнарий export2.

#!/bin/sh


echo "$foo"

echo "$bar"

2. Π’Π΅ΠΏΠ΅Ρ€ΡŒ сцСнарий export1. Π’ ΠΊΠΎΠ½Ρ†Π΅ сцСнария запускаСтся export2.

#!/bin/sh


foo="The first meta-syntactic variable"

export bar="The second meta-syntactic variable"

export2

Если Π²Ρ‹ запуститС ΠΈΡ…, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

$ ./export1

The second meta-syntactic variable

$

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

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ export2 просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ значСния Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π’ сцСнарии export1 Π·Π°Π΄Π°ΡŽΡ‚ΡΡ значСния ΠΎΠ±Π΅ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрСмСнная bar помСчаСтся ΠΊΠ°ΠΊ экспортируСмая, поэтому, ΠΊΠΎΠ³Π΄Π° впослСдствии запускаСтся сцСнарий export2, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ foo потСряно, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ bar экспортировано Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ сцСнарий. На экранС появляСтся пустая строка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ $foo Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ содСрТит ΠΈ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ null ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ строки.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ пСрСмСнная Π±Ρ‹Π»Π° экспортирована ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΎΠ½Π° экспортируСтся Π² Π»ΡŽΠ±Ρ‹Π΅ сцСнарии, запускаСмыС ΠΈΠ· этой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈ Π² Π»ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ эти сцСнарии, ΠΈ Ρ‚.Π΄. Если Π±Ρ‹ сцСнарий export2 Π²Ρ‹Π·Π²Π°Π» Π΄Ρ€ΡƒΠ³ΠΎΠΉ сцСнарий, Π² Π½Π΅ΠΌ пСрСмСнная bar Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»Π° Π±Ρ‹ доступна.

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

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ set -Π° ΠΈΠ»ΠΈ set -allexport ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ соотвСтствСнно.

expr

Команда expr вычисляСт Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, составлСнноС ΠΈΠ· Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π§Π°Ρ‰Π΅ всСго ΠΎΠ½Π° примСняСтся для подсчСта простых арифмСтичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅:

Ρ…=`expr $x + 1`

Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ `` (обратная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ апостроф) Π·Π°ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ… ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ expr $Ρ… + 1. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ синтаксичСской конструкции $( ) вмСсто ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ…=$(expr $Ρ… + 1)

Команда expr ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ большими возмоТностями, с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ выраТСния. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ вычислСний пСрСчислСны Π² Ρ‚Π°Π±Π». 2.6.


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

ВычислСниС выраТСния Описания Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 | Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1, Ссли Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 Π½Π΅ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 & Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 ΠΡƒΠ»ΡŒ, Ссли ΠΎΠ±Π° выраТСния Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 = Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 РавСнство Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 > Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π‘ΠΎΠ»ΡŒΡˆΠ΅ Ρ‡Π΅ΠΌ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 >= Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 < Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 МСньшС Ρ‡Π΅ΠΌ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 <= Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 != Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 НСравСнство Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 + Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 β€” Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 * Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 / Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Ρ†Π΅Π»ΠΎ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 % Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2 ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния Π½Π°Ρ†Π΅Π»ΠΎ

Π’ соврСмСнных сцСнариях вмСсто ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ expr ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ примСняСтся Π±ΠΎΠ»Π΅Π΅ эффСктивная синтаксичСская конструкция $((...)), которая Π±ΡƒΠ΄Π΅Ρ‚ описана Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅.

printf

Команда printf Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² соврСмСнных ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ°Ρ…. Π“Ρ€ΡƒΠΏΠΏΠ° X/Open ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅Π΅ слСдуСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ вмСсто ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ echo для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π°, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ, каТСтся, лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ этому совСту.

Π£ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ синтаксичСская запись.

printf "строка Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°" ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€1 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€2 ...

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ограничСниями Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ Π² языках программирования Π‘ ΠΈ Π‘++. Π“Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ всС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° состоит ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… символов, escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΈ спСцификаторов прСобразования. ВсС символы строки Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΎΡ‚ \ ΠΈ %, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° экранС ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅.

Π’ Ρ‚Π°Π±Π». 2.7 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.


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

Escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ОписаниС \" Двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° \\ Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш \a Π—Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал Ρ‚Ρ€Π΅Π²ΠΎΠ³ΠΈ (Π·Π²ΠΎΠ½ΠΎΠΊ ΠΊΠΎΠ»ΠΎΠΊΠΎΠ»ΡŒΡ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ прСрывистый Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал) \b Π‘ΠΈΠΌΠ²ΠΎΠ» Backspace (стираниС слСва) \c ΠžΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° \f Π‘ΠΈΠΌΠ²ΠΎΠ» Form feed (ΠΏΠΎΠ΄Π°Ρ‡Π° Π±ΡƒΠΌΠ°Π³ΠΈ) \n Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку \r Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ \t Π‘ΠΈΠΌΠ²ΠΎΠ» табуляции \v Π‘ΠΈΠΌΠ²ΠΎΠ» Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ табуляции \ooo Один символ с Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ooo \xHH Один символ с ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ HH

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ довольно слоТны, поэтому ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΈΡ… примСнСния. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ справочном руководствС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ bash ΠΈΠ»ΠΈ Π½Π° страницах Ρ€Π°Π·Π΄Π΅Π»Π° 1 ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ руководства ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ printf (man 1 printf). (Если Π²Ρ‹ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Ρ… свСдСний Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 1, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3.) Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прСобразования состоит ΠΈΠ· символа %, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт символ прСобразования. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ пСрСчислСны Π² Ρ‚Π°Π±Π». 2.8.


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

Π‘ΠΈΠΌΠ²ΠΎΠ» прСобразования  ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ D Π’Ρ‹Π²ΠΎΠ΄ дСсятичного числа Π‘ Π’Ρ‹Π²ΠΎΠ΄ символа S Π’Ρ‹Π²ΠΎΠ΄ строки % Π’Ρ‹Π²ΠΎΠ΄ Π·Π½Π°ΠΊΠ° %

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

$ printf "%s\n" hello

hello

$ printf "%s %d\t%s" "Hi There" 15 people

Hi There 15 people

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ строки Hi There ΠΈ прСвращСния Π΅Π΅ Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, строку Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ("").