Thursday, January 6, 2011

[Shell script] BIến trong shell script-variables

Biến-variable là đơn vị lưu trữ dữ  liệu để xử lý. Dữ liệu sẽ được ghi nhớ trong các biến để từ đó xử lý tiếp.

Trong shell Linux có 2 dạng biến:
    1.System variables: biến hệ thống, được tạo và duy trì bởi Linux.Các biến này đc định nghĩa bằng chữ HOA
    2.User defined variables(UDV): biến do user tạo ra và quản lý, được định nghĩa bằng chữ thường

Các biến hệ thống thường gặp đã được định nghĩa sẵn
BASH : chứa path đến shell
BASH_VERSION  : version của shell
COLUMNS         :số cột của màn hình hiển thị
HOME            :home folder của user hiện tại
LOGNAME        :tên uer đang log on
OSTYPE        :tên OS
PATH            :đường dẫn của biến môi trường
PS1            :thiết lập của dấu nhắc lệnh
PWD            :thư mục hiện tại
SHELL        : tên shell
USERNAME        :user name đang login

How to define User defined variables (UDV)
để định nghĩa UDV ta sử dụng cấu trúc sau:

    variable name = value

lúc này giá trị 'value' đc gán đến 'variable name'. Lưu ý rằng, value là giá trị nằm bên phải của dấu =
 a = bus
 n= 100
Quy tắc đặt tên biến(cả UDV và system variable)
1.Tên biến phải bắt đầu bằng một ký tự hoặc dấu gạch dưới (_), tiếp theo là các ký tự Alpha.ví dụ:
    HOME
    SYSTEM_VERSION
    bash
2.Khi gán biến, không đc để khoảng trống 2 bên dấu =.
    $ no=10 //hợp lệ
    $ no = 10
    $ no= 10
    $ no =10
    3 dòng dưới cùng có thể dẫn đến lỗi

3.Biến đc phân biệt HOA, thường- tương tự như trong Linux.
4.Có thể định nghĩa một biến NULL. Biến NULL là biến ko có gía trị khi định nghĩa.
Ví dụ:
    $ no=
    hoặc
    $no=""
5.Không sử dụng các ký tự như ?, * ... để đặt tên cho biến
-----
How to print or access value of UDV

để hiện thị hoặc truy cập UDV, ta sử dụng quy tắc sau:
    $variablename
Ví dụ:
Định nghĩa biến vech và n như sau:
    $ vech=bus //lưu ý,dấu $ ở đây là nói về dấu nhắc lệnh trong shellell
    $ n=10
để in ra bus, ta sử dụng
    $ echo $vech
để in ra giá trị của n, ta sử dụng
    $ echo $n

Chú ý: nếu ko có dấu $ trước biến, nó sẽ ko in ra giá trị của biến mà in ra ký tự đó.
Ví dụ:    $ echo vech
nó sẽ in ra 'vech' chứ không phải là bus
----
"backtick"

Trong shell script, ký tự `, ký tự này được gọi là backtick. Ký tự này cho phép bạn gán nội dung output của một câu lệnh vào biến. Ví dụ, để lưu output của câu lệnh date vào biến tên là test, ta sẽ sử dụng cú pháp sau:
test=`date`
Khi đó, shell sẽ chạy câu lệnh bên trong backtick và ghi nhớ nội dung đó vào biến test.
Nội dung file:

=====End======

No comments:

Post a Comment