Онлайн робочі станції OnWorks Linux та Windows

логотип

Безкоштовний онлайн-хостинг для робочих станцій

<Попередній | зміст | Наступна>

Тут Документи

Ми розглянули два різні способи виведення нашого тексту, обидва за допомогою нудьгувати ком-


манд. Існує третій спосіб, який називається а тут документ or тут сценарій. Документ тут — це додаткова форма перенаправлення вводу-виводу, у якій ми вставляємо текст у наш скрипт і вводимо його в стандартне введення команди. Це працює так:

команда << знак

текст

знак

де команда це ім'я команди, яка приймає стандартний вхід і знак це рядок, який використовується для позначення кінця вбудованого тексту. Ми модифікуємо наш сценарій, щоб використовувати наведений тут документ:



#! / бін / баш


# Програма для виведення сторінки системної інформації


TITLE="Звіт про системну інформацію для $HOSTNAME" CURRENT_TIME=$(дата +"%x %r %Z")

TIMESTAMP="Створено $CURRENT_TIME, $USER"


кіт << _EOF_

$TITLE

$TITLE

$TIMESTAMP

_EOF_

#! / бін / баш


# Програма для виведення сторінки системної інформації


TITLE="Звіт про системну інформацію для $HOSTNAME" CURRENT_TIME=$(дата +"%x %r %Z")

TIMESTAMP="Створено $CURRENT_TIME, $USER"


кіт << _EOF_

$TITLE

$TITLE

$TIMESTAMP

_EOF_


Замість використання нудьгувати, зараз використовує наш сценарій як і тут документ. Нитка _EOF_ (що означає «кінець файлу», загальна умова) було обрано як маркер і позначає кінець вбудованого тексту. Зауважте, що токен повинен з’являтися окремо, а в рядку не повинно бути пробілів.

Отже, яка перевага використання тут документа? Це переважно те саме, що нудьгувати, за винятком того, що за замовчуванням одинарні та подвійні лапки в цих документах втрачають своє особливе значення для оболонки. Ось приклад командного рядка:



[me@linuxbox ~]$ foo="якийсь текст"

[me@linuxbox ~]$ кіт << _EOF_

> $foo

[me@linuxbox ~]$ foo="якийсь текст"

[me@linuxbox ~]$ кіт << _EOF_

> $foo


> "$foo"

> '$foo'

> \$foo

> _EOF_ деякий текст "якийсь текст" "якийсь текст"

$foo

> "$foo"

> '$foo'

> \$foo

> _EOF_ деякий текст "якийсь текст" "якийсь текст"

$foo


Як бачимо, оболонка не звертає уваги на лапки. Він ставиться до них як до звичайних персонажів. Це дозволяє нам вільно вставляти цитати в документ тут. Це може виявитися зручним для нашої програми звітів.

Тут документи можна використовувати з будь-якою командою, яка приймає стандартне введення. У цьому прикладі ми використовуємо документ here для передачі серії команд до FTP програма для отримання файлу з віддаленого FTP-сервера:



#! / бін / баш

# Скрипт для отримання файлу через FTP FTP_SERVER=ftp.nl.debian.org

FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz


ftp -n << _EOF_ відкрити $FTP_SERVER

анонімний користувач me@linuxbox cd $FTP_PATH

мішанина

отримати $REMOTE_FILE до побачення

_EOF_

ls -l $REMOTE_FILE

#! / бін / баш

# Скрипт для отримання файлу через FTP FTP_SERVER=ftp.nl.debian.org

FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz


ftp -n << _EOF_ відкрити $FTP_SERVER

анонімний користувач me@linuxbox cd $FTP_PATH

мішанина

отримати $REMOTE_FILE до побачення

_EOF_

ls -l $REMOTE_FILE


Якщо ми змінимо оператор переспрямування з «<<» на «<<-», оболонка ігноруватиме провідні символи табуляції в документі тут. Це дозволяє зробити відступ у документі, що може покращити читабельність:



#! / бін / баш

# Скрипт для отримання файлу через FTP FTP_SERVER=ftp.nl.debian.org

#! / бін / баш

# Скрипт для отримання файлу через FTP FTP_SERVER=ftp.nl.debian.org


FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz


ftp -n <<- _EOF_ відкрити $FTP_SERVER

анонімний користувач me@linuxbox cd $FTP_PATH

мішанина

отримати $REMOTE_FILE до побачення

_EOF_


ls -l $REMOTE_FILE

FTP_PATH=/debian/dists/lenny/main/installer-i386/current/images/cdrom REMOTE_FILE=debian-cd_info.tar.gz


ftp -n <<- _EOF_ відкрити $FTP_SERVER

анонімний користувач me@linuxbox cd $FTP_PATH

мішанина

отримати $REMOTE_FILE до побачення

_EOF_


ls -l $REMOTE_FILE


Найпопулярніші хмарні обчислення ОС на OnWorks: