112
Bash
[user]$ PATH=$PATH:new_path
Khi tìm kiếm, hệ vỏ “lục lọi” các thư mục theo đúng thứ tự đã liệt kê trong
biến PATH. Một chú ý nhỏ, có thể đưa vào danh sách này thư mục hiện thời, khi
thêm vào biến PATH một dấu chấm (.). Tuy nhiên, đây là điều không khuyên làm
với lý do bảo mật: người có ác ý có thể đặt vào thư mục dùng chung một chương
trình nào đó, có cùng tên với một trong số những câu lệnh thường dùng bởi root,
nhưng thực hiện những chức năng khác hoàn toàn (đặc biệt nguy hiểm nếu thư
mục hiện thời đứng ở đầu danh sách tìm kiếm).
5.6.4
Biến môi trường IFS
Biến này xác định ký tự (cụm ký tự) phân cách (Internal Field Separator), sử
dụng trong thao tác phân chia từ ngữ khi biến đổi dòng lệnh, mà hệ vỏ thực hiện
trước khi chạy một câu lệnh nào đó (xem dưới). Giá trị theo mặc định của biến này
– “<Khoảng_trắng><Tab><Ký_tự_hàng_mới>”. Nếu thử gõ lệnh “echo $IFS”,
bạn sẽ nhận được một ngạc nhiên nhỏ.
5.6.5
Thư mục hiện thời và thư mục cá nhân
Tên của thư mục hiện thời ghi trong biến môi trường với tên PWD, và giá trị của
biến này thay đổi sau mỗi lần chạy chương trình cd (cũng như mỗi lần thay đổi
thư mục hiện thời theo bất kỳ cách nào, ví dụ, qua Midnight Commander). Tương
tự như vậy tên đầy đủ (gồm cả đường dẫn) của thư mục cá nhân của người dùng,
chạy tiến trình đã cho, ghi trong biến HOME.
5.6.6
Câu lệnh export
Khi hệ vỏ chạy một chương trình hay câu lệnh nào đó, nó (hệ vỏ) cung cấp cho
chúng một phần biến môi trường. Để có thể cung cấp biến môi trường cho tiến
trình chạy từ hệ vỏ, cần gán giá trị cho biến này với lệnh export, tức là thay vì
[user]$ name=value
cần gõ:
[user]$ export name=value
Trong trường hợp này, tất cả các chương trình chạy từ hệ vỏ (kể cả bản sao
thứ hai của chính hệ vỏ) sẽ có quyền truy cập tới các biến được gán như vậy, tức
là sử dụng giá trị của chúng qua tên.
5.7
Khai triển biểu thức
Hay hệ vỏ đọc các câu lệnh như thế nào?.
Khi hệ vỏ nhận được một dòng lệnh này đó cần thực hiện, nó (hệ vỏ) trước khi
chạy câu lệnh thực hiện việc “phân tích ngữ pháp” dòng lệnh này (giống trong