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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° языкС сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор МСндСль ΠšΡƒΠΏΠ΅Ρ€

# ΠšΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ встрСчаСтся ΠΈ Ρ‚Π°ΠΊΠΎΠ΅:

# 11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20

# Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ†ΠΈΠΊΠ» Π½Π°Ρ‡Π°Π» ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ.


exit 0

Команда, исполняСмая Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… сцСнария Π² Ρ„ΠΎΠ½Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π²Π΅ΡΠΈΡ‚ΡŒ сцСнарий, оТидая наТатия клавиши. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, это Π»Π΅Π³ΠΊΠΎ "лСчится".

&&

ЛогичСская опСрация AND (логичСскоС И). Π’ опСрациях ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ условий, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ && Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 (success) Ρ‚ΠΎΠ³Π΄Π°, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true (ИБВИНА).

-

прСфикс ΠΊΠ»ΡŽΡ‡Π°. Π‘ этого символа Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΡŽΡ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.

COMMAND -[Option1][Option2][...]

ls -al

sort -dfu $filename

set -- $variable

if [ $file1 -ot $file2 ]

then

echo "Π€Π°ΠΉΠ» $file1 Π±Ρ‹Π» создан Ρ€Π°Π½ΡŒΡˆΠ΅ Ρ‡Π΅ΠΌ $file2."

fi


if [ "$a" -eq "$b" ]

then

echo "$a Ρ€Π°Π²Π½ΠΎ $b."

fi


if [ "$c" -eq 24 -a "$d" -eq 47 ]

then

echo "$c Ρ€Π°Π²Π½ΠΎ 24, Π° $d Ρ€Π°Π²Π½ΠΎ 47."

fi


-

ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·/Π² stdin ΠΈΠ»ΠΈ stdout. [дСфис]

(cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)

# ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ

# [спасибо Алану ΠšΠΎΠΊΡΡƒ (Alan Cox) < [email protected]>, Π·Π° нСбольшиС ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠΈ]


# 1) cd /source/directory ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² исходный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΎ

# 2) && "И-список": благодаря этому всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹

# Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° 'cd' Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ

# 3) tar cf - . ΠΊΠ»ΡŽΡ‡ΠΎΠΌ 'c' Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ 'tar' создаСт Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ²,

# ΠΊΠ»ΡŽΡ‡ΠΎΠΌ 'f' (file) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ '-' задаСтся Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° -- stdout,

# Π² Π°Ρ€Ρ…ΠΈΠ² помСщаСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ('.') с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ.

# 4) | ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ с ...

# 5) ( ... ) subshell-ΠΎΠΌ (Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ экзСмпляром ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ)

# 6) cd /dest/directory ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ назначСния.

# 7) && "И-список", см. Π²Ρ‹ΡˆΠ΅

# 8) tar xpvf - Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ('x'), с сохранСниСм Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² "Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π°" ΠΈ ΠΏΡ€Π°Π² доступа ('p') ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ,

# с Π²Ρ‹Π΄Π°Ρ‡Π΅ΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… сообщСний Π½Π° stdout ('v'),

# Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π° -- stdin ('f' с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ '-').

#

# ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ 'x' -- это ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° 'p', 'v' ΠΈ 'f' -- ΠΊΠ»ΡŽΡ‡ΠΈ

# Π’ΠΎ ΠΊΠ°ΠΊ!


# Π‘ΠΎΠ»Π΅Π΅ элСгантный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

# cd source-directory

# tar cf - . | (cd ../target-directory; tar xzf -)

#

# cp -a /source/directory /dest ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ эффСкт.


bunzip2 linux-2.4.3.tar.bz2 | tar xvf -

# --Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ tar-Ρ„Π°ΠΉΠ»Π°-- | --Π·Π°Ρ‚Π΅ΠΌ Ρ„Π°ΠΉΠ» пСрСдаСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ "tar"--

# Если Ρƒ вас ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° "tar" Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с "bunzip2",

# Ρ‚ΠΎΠ³Π΄Π° придСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Π΄Π²Π° этапа, с использованиСм ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°.

# ЦСлью Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° являСтся Ρ€Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°Ρ€Π±ΠΎΠ»Π° (tar.bz2) с исходными тСкстами ядра.


ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом контСкстС "-" - Π½Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Bash, Π° скорСС опция, распознаваСмая Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ UNIX (Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ tar, cat ΠΈ Ρ‚.ΠΏ.), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выводят Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² stdout.

bash$ echo "whatever" | cat -

whatever


Π’ случаС, ΠΊΠΎΠ³Π΄Π° оТидаСтся имя Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎΠ³Π΄Π° "-" пСрСнаправляСт Π²Ρ‹Π²ΠΎΠ΄ Π½Π° stdout (вспомнитС ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с tar cf) ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π²ΠΎΠ΄ с stdin.

bash$ file

Usage: file [-bciknvzL] [-f namefile] [-m magicfiles] file...

Π‘Π°ΠΌΠ° ΠΏΠΎ сСбС ΠΊΠΎΠΌΠ°Π½Π΄Π° file Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с сообщСниСм ΠΎΠ± ошибкС.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ символ "-" ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π­Ρ‚ΠΎ заставит ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

bash$ file -

abc

standard input: ASCII text


bash$ file -

#!/bin/bash

standard input: Bourne-Again shell script text executable

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ со stdin ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ stdout ΠΏΠΎ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ довольно эффСктныС Ρ‚Ρ€ΡŽΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вставка строк Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ diff -- Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ:

grep Linux file1 | diff file2 -

И Π½Π°ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования слуТСбного символа "-" с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ tar.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3-4. Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних суток

#!/bin/bash


# Π Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (backup) всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅,

# ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ послСдних 24 часов

#+ Π² Ρ‚Π°Ρ€Π±ΠΎΠ»Π» (tarball) (.tar.gz - Ρ„Π°ΠΉΠ»).


BACKUPFILE=backup

archive=${1:-$BACKUPFILE}

# На случай, Ссли имя Π°Ρ€Ρ…ΠΈΠ²Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ,

#+ Ρ‚.Π΅. ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ имя Π°Ρ€Ρ…ΠΈΠ²Π° -- "backup.tar.gz"


tar cvf - `find . -mtime -1 -type f -print` > $archive.tar

gzip $archive.tar

echo "ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ $PWD Π·Π°Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ Π² Ρ„Π°ΠΉΠ» \"$archive.tar.gz\"."


# Stephane Chazelas Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ», Ρ‡Ρ‚ΠΎ Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ "ΠΏΠ°Π΄Π°Ρ‚ΡŒ"

#+ Ссли Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²

#+ ΠΈΠ»ΠΈ Ссли ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ символы ΠΏΡ€ΠΎΠ±Π΅Π»Π°.


# Им ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

# -------------------------------------------------------------------

# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"

# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вСрсия GNU ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ "find".


# find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;

# Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, хотя ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΉ,

# Π·Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсиях UNIX.

# -------------------------------------------------------------------


exit 0

ΠœΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Π΅ ситуации ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠΏΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΠΌ пСрСнаправлСния "-" ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ с символа "-". ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сцСнарий Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ€ΡΡ‚ΡŒ ΠΈΡ… прСфиксом ΠΏΡƒΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ./-FILENAME, $PWD/-FILENAME ΠΈΠ»ΠΈ $PATHNAME/-FILENAME.

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ начинаСтся с символа "-", Ρ‚ΠΎ это Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ появлСния ошибок.

var="-n"

echo $var

# Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Ρ‚ Π²ΠΈΠ΄ "echo -n" ΠΈ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚.


-

ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. [дСфис] Команда cd - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния $OLDPWD .

НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ "-" (ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°) с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ "-" (пСрСназначСния). Π•Ρ‰Π΅ Ρ€Π°Π· напомню, Ρ‡Ρ‚ΠΎ интСрпрСтация символа "-" зависит ΠΎΡ‚ контСкста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ употрСбляСтся.

-

ΠœΠΈΠ½ΡƒΡ. Π—Π½Π°ΠΊ минус Π² арифмСтичСских опСрациях.

=

Π‘ΠΈΠΌΠ²ΠΎΠ» "Ρ€Π°Π²Π½ΠΎ". ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания

a=28

echo $a # 28


Π’ зависимости ΠΎΡ‚ контСкста примСнСния, символ "=" ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° сравнСния.

+

Плюс. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ слоТСния Π² арифмСтичСских опСрациях.

Π’ зависимости ΠΎΡ‚ контСкста примСнСния, символ + ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ рСгулярного выраТСния.

+

ΠšΠ»ΡŽΡ‡ (опция). Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ для ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (ΠΎΠΏΡ†ΠΈΠΉ) ΠΊΠΎΠΌΠ°Π½Π΄.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ внСшниС ΠΈ встроСнныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ символ "+" для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ, Π° символ "-" -- для запрСщСния.

%

ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ (остаток ΠΎΡ‚ дСлСния) -- арифмСтичСская опСрация.

Π’ зависимости ΠΎΡ‚ контСкста примСнСния, символ % ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² качСствС шаблона.

~

домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. [Ρ‚ΠΈΠ»ΡŒΠ΄Π°] БоотвСтствуСт содСрТимому Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $HOME. ~bozo -- домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ bozo, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ls ~bozo Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС Π΅Π³ΠΎ домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°. ~/ -- это домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ls ~/ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ содСрТимоС домашнСго ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

bash$ echo ~bozo

/home/bozo


bash$ echo ~

/home/bozo


bash$ echo ~/

/home/bozo/


bash$ echo ~:

/home/bozo:


bash$ echo ~nonexistent-user

~nonexistent-user


~+

Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. БоотвСтствуСт содСрТимому Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $PWD.

~-

ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. БоотвСтствуСт содСрТимому Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $OLDPWD.

^

Π½Π°Ρ‡Π°Π»ΠΎ-строки. Π’ рСгулярных выраТСниях символ "^" Π·Π°Π΄Π°Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ строки тСкста.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ символ

измСняСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈΠ»ΠΈ управляСт Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ тСкста. Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ символ набираСтся с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΊΠ°ΠΊ комбинация CONTROL + <клавиша>.