104
Bash
kênh thông báo lỗi tiêu chuẩn (standard error hay stderr). Qua kênh này
chương trình đưa ra thông tin về lỗi.
Từ đầu vào tiêu chuẩn chương trình chỉ có thể đọc, còn hai đầu ra và kênh
thông báo lỗi được chương trình sử dụng chỉ để ghi. Theo mặc định đầu vào có
liên kết
với bàn phím, còn đầu ra và kênh báo lỗi hướng đến terminal của người
dùng. Nói cách khác, toàn bộ thông tin của lệnh hay chương trình mà người dùng
đã chạy, và tất cả những thông báo lỗi, được đưa ra cửa sổ terminal. Tuy nhiên,
chúng ta sẽ thấy ở dưới, có thể chuyển hướng thông báo đầu ra (ví dụ, vào tập
tin). Để cho thấy kênh thông báo lỗi tiêu chuẩn làm việc như thế nào, hãy thực
hiện câu lệnh ls với một tham số không đúng, ví dụ dùng tham số là một tên tập
tin không tồn tại. Trong trường hợp này, ls đưa một tin nhắn báo lỗi ra kênh
thông báo lỗi tiêu chuẩn. Tuy nhiên, đối với người dùng thì trong trường hợp này
kênh thông báo lỗi tiêu chuẩn không khác gì với đầu ra tiêu chuẩn, bởi vì chúng
ta cũng thấy thông báo lỗi đó trên cửa sổ terminal. Làm việc với đầu vào và đầu
ra tiêu chuẩn được minh họa tốt nhất qua ví dụ các lệnh echo và cat.
5.4.2
Lệnh echo
Câu lệnh echo dùng để chuyển tới đầu ra tiêu chuẩn dòng ký tự, mà được đưa
vào làm tham số cho nó. Sau đó lệnh này đưa ra tín hiệu chuyển dòng và hoàn
tất công việc. Hãy thử thực hiện câu lệnh sau:
[user]$ echo ’xin chao cac ban!’
Tôi nghĩ rằng lời giải thích sẽ là thừa thãi (chỉ xin hãy sử dụng dấu ngoặc
đơn, nếu không kết quả có thể sẽ khác. Nếu bạn đọc chú ý thì có thể giải thích
tại sao lại khác).
5.4.3
Lệnh cat
Chúng ta sẽ xem xét lệnh cat ở đây vì lệnh này thường làm việc với đầu vào và
đầu ra tiêu chuẩn. Theo mặc định kết quả làm việc của lệnh cat hướng tới đầu
ra tiêu chuẩn. Để chứng minh là lệnh này theo mặc định tiếp nhận dòng dữ liệu
nhập vào, hãy chạy lệnh cat không có tham số. Kết quả là con trỏ chuyển tới
một dòng mới, và hơn nữa có vẻ như không có gì xảy ra. Lúc này câu lệnh chờ
các ký tự đến từ đầu vào tiêu chuẩn. Hãy nhập bất kỳ ký tự nào, và nó sẽ xuất
hiện ngay lập tức trên màn hình, tức là chương trình ngay lập tức đưa chúng tới
đầu ra tiêu chuẩn. Có thể tiếp tục nhập các ký tự, và chúng cũng sẽ xuất hiện
trên màn hình. Thông thường bàn phím được cấu hình để nhập vào theo từng
dòng, vì thế nếu bạn nhấn phím <Enter>, dòng ký tự bạn vừa nhập sẽ được đưa
tới lệnh cat, và lệnh này sẽ lại đưa dữ liệu ra màn hình thông qua đầu ra tiêu
chuẩn. Như vậy, mỗi dòng ký tự nhập vào sẽ được hiện ra hay lần: một lần khi
gõ và lần thứ hai bởi câu lệnh cat. Nếu nhấn tổ hợp phím <Ctrl>+<D>, mà dùng
để ngừng việc nhập dữ liệu, chúng ta sẽ qua lại dòng nhập lệnh. Cũng có thể sử
dụng tổ hợp phím <Ctrl>+<C>, mà là câu lệnh trong hệ vỏ để dừng chương trình
1
giống liên kết hóa học