440 Chương 9 ■ Scripts Viết, Cấu hình Email, và sử dụng cơ sở dữ liệu
Listing 9.4: phiên bản sửa đổi của Liệt kê 9.2 mà sử dụng tương tác người dùng
#! / Bin / sh
echo -n "Nhập tên thành viên:"
đọc tên
useradd -m $ tên
passwd $ tên
mkdir -p / chia sẻ / $ tên
chown $ name.users / chia sẻ / $ tên
chmod 775 / chia sẻ / $ tên
ln -s / chia sẻ / $ name / home / $ name / chia sẻ
chown $ name.users / home / $ tên / chia sẻ
một loại đặc biệt của biến đã được đề cập trước đó trong chương này: biến môi trường, được mô tả trong ". Quản lý Môi trường Shell" Các biến môi trường được phân công
và truy cập giống như các biến shell script. Sự khác biệt là kịch bản hay lệnh
mà bộ biến môi trường sử dụng exportcommand (trong bash) để làm cho giá trị
của biến có thể truy cập vào các chương trình phóng từ vỏ hoặc vỏ kịch bản mà thực hiện các
nhiệm vụ. Nói cách khác, bạn có thể thiết lập một biến môi trường trong một kịch bản và sử dụng nó
trong một kịch bản mà các kịch bản đầu tiên ra mắt. Biến môi trường được thường xuyên nhất thiết trong
kịch bản khởi động shell, nhưng kịch bản bạn sử dụng có thể truy cập chúng. Ví dụ, nếu kịch bản của bạn
gọi chương trình X, nó có thể kiểm tra sự hiện diện của một biến $ DISPLAYenvironment hợp lệ
và hủy bỏ nếu nó fi nds rằng biến này không được thiết lập. Theo quy ước, môi trường tên biến
được tất cả các chữ hoa, trong khi các biến shell script phi-môi trường là tất cả chữ thường hoặc
trường hợp pha trộn.
Sử dụng Conditional Expressions
Scripting ngôn ngữ hỗ trợ một số dạng của các biểu thức điều kiện. Các biểu thức này
cho phép một kịch bản để thực hiện một trong nhiều hành động phụ thuộc vào một số điều kiện, thường
giá trị của một biến. Một lệnh thường sử dụng biểu thức điều kiện là nếu,
cho phép hệ thống để có một trong hai hành động tùy thuộc vào việc một số điều kiện
là đúng. Biểu thức điều kiện của ifkeyword xuất hiện trong dấu ngoặc sau khi ifkeyword
và có thể có nhiều hình thức. Ví dụ, -f fileis đúng nếu fileexists và là một tập tin thường xuyên;
-s fileis đúng nếu fileexists và có kích thước lớn hơn 0; và string1 == string2is đúng nếu
hai chuỗi có cùng giá trị. (Thông thường, một hoặc cả hai dây là một biến.)
Các điều kiện có thể được kết hợp cùng với các hợp lý và (&&) hay hợp lý hoặc (||) khai thác. Khi điều kiện được kết hợp với &&, cả hai bên của các nhà điều hành phải đúng
với các điều kiện như một toàn thể là đúng. Khi || được sử dụng, nếu một trong hai bên của các nhà điều hành là
đúng, điều kiện như một toàn là sự thật.
Để hiểu rõ hơn về việc sử dụng các điều kiện, xem xét các đoạn mã sau:
nếu [-s / tmp / tempstuff]
sau đó
đang được dịch, vui lòng đợi..