www.nhipsongcongnghe.net
do
echo "This is parameter number $count $1"
shift
count=`expr $count + 1`
done
Chỉ có sự khác nhau trong ví dụ này là và ví dụ về lệnh while là tùy chọn -n của lệnh
test, nó có nghĩa rằng xâu không có độ dài bằng 0, được thay bởi tùy chọn -z , nó có
nghĩa là chuỗi có độ dài bằng 0. Trong thực tế, lệnh until ít được dùng bởi vì với bất
kỳ lệnh until nào, bạn cũng có thể viết được bằng lệnh while. Lệnh until không được
hỗ trợ trong tcsh.
6.6.4. L nh shift
Tất cả các shell bash, pdksh, và tcsh đều hỗ trợ một lệnh gọi là lệnh shift. Lệnh shift
chuyển các giá trị hiện tại được lưu trữ trong các đối số dòng lệnh lên một vị trí sang
trái. Ví dụ, nếu các giá trị của các đối số là
$1 = -r $2 = file1 $3 = file2
và bạn thực hiện lệnh shift
shift
kết quả các đối số được đưa vào như sau:
$1 = file1 $2 = file2
Bạn có thể dịch chuyển các đối số qua nhiều hơn một vị trí bởi một số xác định
vớikèm theo với lệnh shift. Lệnh sau dịch chuyển đối số lên hai vị trí:
shift 2
Lệnh này rất hữu ích khi có một chương trình shell cần phân tích các tùy chọn dòng
lệnh. Các tùyd chọn thường được đặt trước bởi một dấu nối và một ký tự để chỉ ra tùy
chọn nào được sử dụng. Bởi vì các tùy chọn luôn luôn được xử lý trong một vòng lặp
của một loại câu lệnh, bạn sẽ thường muốn nhảy đến đối số tiếp theo một khi bạn đã
xác định được tùy chọn nào nên được xử lý tiếp theo. Ví dụ, chương trình shell sau
chờ hai tùy chọn dòng lệnh, một xác định một file đầu vào và một xác định một file
đầ
u ra. Chương trình đọc file đầu vào, chuyển tất cả các ký tự trong file input thành
chữ hoa, và sau đó lưu trữ kết quả trong file đầu ra xác định:
while [ "$1" ]
do