Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Aqui Documentos

Vimos dois métodos diferentes de saída de nosso texto, ambos usando o eco com


mando Existe uma terceira via chamada aqui documentar or aqui script. Um documento here é uma forma adicional de redirecionamento de E / S em que incorporamos um corpo de texto em nosso script e o alimentamos na entrada padrão de um comando. Funciona assim:

comando << token

texto

token

onde comando é o nome do comando que aceita entrada padrão e token é uma string usada para indicar o final do texto incorporado. Modificaremos nosso script para usar um documento aqui:



#! / Bin / bash


# Programa para gerar uma página de informações do sistema


TITLE = "Relatório de informações do sistema para $ HOSTNAME" CURRENT_TIME = $ (data + "% x% r% Z")

TIMESTAMP = "Gerado $ CURRENT_TIME, por $ USER"


gato << _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

_EOF_

#! / Bin / bash


# Programa para gerar uma página de informações do sistema


TITLE = "Relatório de informações do sistema para $ HOSTNAME" CURRENT_TIME = $ (data + "% x% r% Z")

TIMESTAMP = "Gerado $ CURRENT_TIME, por $ USER"


gato << _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

_EOF_


Ao invés de usar eco, nosso script agora usa gato e um documento aqui. A corda _EOF_ (que significa “Fim do arquivo”, uma convenção comum) foi selecionado como o token e marca o final do texto incorporado. Observe que o token deve aparecer sozinho e não deve haver espaços à direita na linha.

Qual é a vantagem de usar um documento aqui? É basicamente o mesmo que eco, exceto que, por padrão, aspas simples e duplas dentro dos documentos perdem seu significado especial para o shell. Aqui está um exemplo de linha de comando:



[me @ linuxbox ~] $ foo = "algum texto"

[me @ linuxbox ~] $ gato << _EOF_

> $ foo

[me @ linuxbox ~] $ foo = "algum texto"

[me @ linuxbox ~] $ gato << _EOF_

> $ foo


> "$ foo"

> '$ foo'

> \ $ foo

> _EOF_ algum texto "algum texto" 'algum texto'

$ foo

> "$ foo"

> '$ foo'

> \ $ foo

> _EOF_ algum texto "algum texto" 'algum texto'

$ foo


Como podemos ver, o shell não dá atenção às aspas. Ele os trata como personagens comuns. Isso nos permite inserir citações livremente em um documento here. Isso pode ser útil para nosso programa de relatórios.

Aqui, os documentos podem ser usados ​​com qualquer comando que aceite entrada padrão. Neste exemplo, usamos um documento here para passar uma série de comandos para o ftp programa para recuperar um arquivo de um servidor FTP remoto:



#! / Bin / bash

# Script para recuperar um arquivo via 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_ abre $ FTP_SERVER

usuário anônimo me @ linuxbox cd $ FTP_PATH

hash

receba $ REMOTE_FILE tchau

_EOF_

ls -l $ REMOTE_FILE

#! / Bin / bash

# Script para recuperar um arquivo via 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_ abre $ FTP_SERVER

usuário anônimo me @ linuxbox cd $ FTP_PATH

hash

receba $ REMOTE_FILE tchau

_EOF_

ls -l $ REMOTE_FILE


Se alterarmos o operador de redirecionamento de “<<” para “<< -”, o shell irá ignorar os caracteres de tabulação iniciais no documento here. Isso permite que um documento here seja recuado, o que pode melhorar a legibilidade:



#! / Bin / bash

# Script para recuperar um arquivo via FTP FTP_SERVER = ftp.nl.debian.org

#! / Bin / bash

# Script para recuperar um arquivo via 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_ abre $ FTP_SERVER

usuário anônimo me @ linuxbox cd $ FTP_PATH

hash

receba $ REMOTE_FILE tchau

_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_ abre $ FTP_SERVER

usuário anônimo me @ linuxbox cd $ FTP_PATH

hash

receba $ REMOTE_FILE tchau

_EOF_


ls -l $ REMOTE_FILE


Top OS Cloud Computing na OnWorks: