OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Tài liệu tại đây

Chúng tôi đã xem xét hai phương pháp xuất văn bản khác nhau, cả hai đều sử dụng bỏ lỡ com-


sự ủy thác. Có một cách thứ ba được gọi là tài liệu đây or kịch bản ở đây. Tài liệu ở đây là một dạng chuyển hướng I / O bổ sung, trong đó chúng ta nhúng một phần nội dung văn bản vào tập lệnh của mình và đưa nó vào đầu vào chuẩn của một lệnh. Nó hoạt động như thế này:

lệnh << mã thông báo

văn bản

mã thông báo

Ở đâu lệnh là tên của lệnh chấp nhận đầu vào tiêu chuẩn và mã thông báo là một chuỗi được sử dụng để chỉ ra phần cuối của văn bản được nhúng. Chúng tôi sẽ sửa đổi tập lệnh của mình để sử dụng một tài liệu ở đây:



#! / bin / bash


# Chương trình xuất trang thông tin hệ thống


TITLE = "Báo cáo thông tin hệ thống cho $ HOSTNAME" CURRENT_TIME = $ (ngày + "% x% r% Z")

TIMESTAMP = "Được tạo ra $ CURRENT_TIME, bởi $ USER"


con mèo << _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

_EOF_

#! / bin / bash


# Chương trình xuất trang thông tin hệ thống


TITLE = "Báo cáo thông tin hệ thống cho $ HOSTNAME" CURRENT_TIME = $ (ngày + "% x% r% Z")

TIMESTAMP = "Được tạo ra $ CURRENT_TIME, bởi $ USER"


con mèo << _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

_EOF_


Thay vì sử dụng bỏ lỡ, tập lệnh của chúng tôi hiện sử dụng làm sao và một tài liệu ở đây. Chuỗi _EOF_ (có nghĩa là “End Of File”, một quy ước chung) được chọn làm mã thông báo và đánh dấu phần cuối của văn bản được nhúng. Lưu ý rằng mã thông báo phải xuất hiện một mình và không được có dấu cách ở cuối dòng.

Vì vậy, lợi ích của việc sử dụng một tài liệu ở đây là gì? Nó chủ yếu giống với bỏ lỡ, ngoại trừ điều đó, theo mặc định, các dấu ngoặc đơn và dấu ngoặc kép trong tài liệu này mất đi ý nghĩa đặc biệt của chúng đối với trình bao. Đây là một ví dụ về dòng lệnh:



[tôi @ linuxbox ~] $ foo = "một số văn bản"

[tôi @ linuxbox ~] $ con mèo << _EOF_

> $ foo

[tôi @ linuxbox ~] $ foo = "một số văn bản"

[tôi @ linuxbox ~] $ con mèo << _EOF_

> $ foo


> "$ foo"

> '$ foo'

> \ $ foo

> _EOF_ một số văn bản "một số văn bản" 'một số văn bản'

$ foo

> "$ foo"

> '$ foo'

> \ $ foo

> _EOF_ một số văn bản "một số văn bản" 'một số văn bản'

$ foo


Như chúng ta có thể thấy, shell không chú ý đến dấu ngoặc kép. Nó coi chúng như những ký tự đơn giản. Điều này cho phép chúng tôi nhúng các trích dẫn một cách tự do trong một tài liệu tại đây. Điều này có thể hữu ích cho chương trình báo cáo của chúng tôi.

Tại đây, các tài liệu có thể được sử dụng với bất kỳ lệnh nào chấp nhận đầu vào tiêu chuẩn. Trong ví dụ này, chúng tôi sử dụng một tài liệu tại đây để chuyển một loạt lệnh tới ftp chương trình trong or- der để truy xuất tệp từ máy chủ FTP từ xa:



#! / bin / bash

# Tập lệnh truy xuất tệp qua 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_ mở $ FTP_SERVER

người dùng ẩn danh tôi @ linuxbox cd $ FTP_PATH

băm

tạm biệt $ REMOTE_FILE

_EOF_

ls -l $ REMOTE_FILE

#! / bin / bash

# Tập lệnh truy xuất tệp qua 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_ mở $ FTP_SERVER

người dùng ẩn danh tôi @ linuxbox cd $ FTP_PATH

băm

tạm biệt $ REMOTE_FILE

_EOF_

ls -l $ REMOTE_FILE


Nếu chúng ta thay đổi toán tử chuyển hướng từ “<<” thành “<< -”, trình bao sẽ bỏ qua các ký tự đầu tab trong tài liệu tại đây. Điều này cho phép một tài liệu ở đây được thụt lề, điều này có thể cải thiện khả năng đọc:



#! / bin / bash

# Tập lệnh truy xuất tệp qua FTP FTP_SERVER = ftp.nl.debian.org

#! / bin / bash

# Tập lệnh truy xuất tệp qua 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_ mở $ FTP_SERVER

người dùng ẩn danh tôi @ linuxbox cd $ FTP_PATH

băm

tạm biệt $ 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_ mở $ FTP_SERVER

người dùng ẩn danh tôi @ linuxbox cd $ FTP_PATH

băm

tạm biệt $ REMOTE_FILE

_EOF_


ls -l $ REMOTE_FILE


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: