Các quy tắc thay thế của Shell

Một phần của tài liệu giáo trình hệ điều hành unix (Trang 47 - 50)

2 3 bảng các xâu ký tự:

9.6 Các quy tắc thay thế của Shell

9.5.1 Dùng các dấu nháy:

‘………’ Shell không thực hiện phép thay thế các ký tự trong dấu nháy đơn “………” Shell thực hiện phép thay thế trong dấu nháy kép các ký tự: $ \ và `

Thí dụ:

$NOM=jean

$echo nom=$NOM

nom=jean thông dịch biến

$echo ‘nom=$NOM’

nom=$NOM hiển thị không thay thế $ echo “nom=$NOM”

nom=jean thông dịch biến $echo *

file1 file2 … thông dịch ký tự * $echo “*”

* hiển thị không thông dịch

Bảng tóm tắt về thông dịch các ký tự đặc biệt trong các dấu nháy:

Các ký tự đặc biệt dùng trong dấu nháy Dấu nháy được

dùng ‘ ` hoặc ) “ \ $ * ‘ f n n n n n ` hoặc $( n f n o o o “ n o f o o n Trong đó: f = kết thúc xâu ký tự

o = ký tự được thông dịch (có ý nghĩa đặc biệt) n = ký tự không được thông dịch (bình thường)

Thí dụ cách sử dụng bảng tóm tắt:

- Ký tự $ được thông dịch như một metacharacter khi nó ở trong $() hoặc “”, khi biến được thay thế bằngh giá trị của nó. Ngược lại, nó không được thông dịch khi ở giữa hai dấu nháy đơn.

9.5.2 Thay thế đúp

Khi Shell làm thao tác thay thế nó quét một lần dòng lệnh và thay thế biến có $ đằng trước.

Ta có thể làm hai lần động tác quét bằng dùng lệnh eval của Shell. Như vậy lệnh đứng sau eval được thay thế 2 lần trước khi chạy.

Thí dụ:

Shell_script last_argument hiển thị đối cuối cùng của dòng lệnh: $cat last_argument

set -x eval echo $”$#” $last_argument 1 A Z 3 F G + eval echo $6 + echo G G Bài tập:

1. Hãy viết shell_script copy_file để sao chép một file của một người sử dụng khác, sau đó đổi nhóm và người sử dụng của file sao.

copy_file file1 file2 user group Gợi ý: sử dụng các lệnh cp, chown, chgrp

2. Hãy viết shell_script dup_file có chức năng như copy_file ở trên nhưng tên các file, tên người sử dụng và tên nhóm được vào bằng hỏi đáp.

Một phần của tài liệu giáo trình hệ điều hành unix (Trang 47 - 50)