Gan gia tri cho bien trong linux

Biến là một chuỗi ký tự mà chúng ta có thể gán giá trị cho chúng. Giá trị được gán có thể là một số, văn bản, hoặc bất kỳ kiểu dữ liệu nào. Shell cho phép bạn tạo ra biến, gán giá trị, và xóa chúng.

Quy tắc đặt tên biến trong Linux

Tên biến cần được VIẾT HOA toàn bộ. Tên biến chỉ cho phép các ký tự a-z hoặc A-Z, các số từ 0-9 và dấu gạch chân _

Ví dụ về tên biến hợp lệ

_NAME
AGE_123

Không được bắt đầu bằng một chữ số và Không được sử dụng các ký tự đặc biệt như !,* , - khi đặt tên biến

Các trường hợp dưới đây vi phạm quy tắc đặt tên biến

1_NAME
2AGE
BIRTH!
PHONE-NUM

Định nghĩa và gán giá trị cho biến

Cấu trúc khai báo như sau

[tên_biến]=[giá trị biến]

Ví dụ định nghĩa đồng thời gán giá trị cho biến

NAME="Barack Obama"
AGE=49

Để truy cập giá trị lưu trong một biến bằng cách đặt ký tự $ trước tên biến:

#!/bin/sh
NAME="Barack Obama"
AGE=49
echo $NAME $AGE

kết quả

Barack Obama 49

Hủy biến

Để hủy một biến sử dụng lệnh unset với cú pháp

unset [tên biến]

Ví dụ hủy biến NAME 

#!/bin/sh
NAME="Barack Obama"
unset NAME
echo $NAME

Lệnh trên sẽ không in bất cứ thứ gì.

Biến chỉ đọc (read-only)

Sau khi một biến được đánh dấu read-only, giá trị của nó sẽ không thể thay đổi và kể cả khi sử dụng unset để hủy biến

#!/bin/bash
NAME="Barack Obama"
readonly NAME
NAME="George Bush"
unset NAME
echo $NAME

Ví dụ tạo một  shell scripts là test.sh và chạy thử

./test.sh
./test.sh: line 4: NAME: readonly variable
./test.sh: line 5: unset: NAME: cannot unset: readonly variable 
Barack Obama

Như các bạn thấy nó báo lỗi biến NAME và giá trị biến không bị thay đổi

Các loại biến

Có 3 loại biến có thể tồn tại khi shell đang chạy

+ Biến cục bộ (Local Variables): biến chỉ sinh ra và tồn tại trong quá trình shell chạy
Biến môi trường (Environment Variables):  biến có sẵn trong các tiến trình con của shell. Một số chương trình cần biến môi trường để chạy
+ Biến Shell (Shell Variables): là biến đặc biệt được tạo ra và sử dụng bởi Shell. Nó có thể là biến cục bộ hoặc biến môi trường

loading...

Gan gia tri cho bien trong linux

Previous Story

Shell và Shell Scripts trong Linux

Next Story

Xổ số toàn quốc

Ở bài trước bạn đã được học cách tạo một chương trình "hello world' với Shell Script rồi, vậy thì bài này mình sẽ bàn về một phần cũng rất quan trọng đó là biến và khai báo biến trong shell script.

Gan gia tri cho bien trong linux

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Biến là một định danh dùng đẻ lưu trữ dữ liệu, nó có thể lưu trữ các loại dữ liệu như dạng số, dạng chuỗi (văn bản), tên thư mục, tên file, thiết bị, hoặc một kiểu dữ liệu bất kì.

Nói rõ hơn thì một biến được xem như là một con trỏ và trỏ đến một ô nhớ lưu trữ dữ liệu. Shell cho phép chúng ta tạo biến, gán giá trị, thậm chí là có thể xóa biến.

1. Đặt tên biến

Cũng như các ngôn ngữ lập trình phổ biến, tên biến bắt buộc phải đặt theo chuẩn mà Shell đưa ra.

Tên biến chỉ chứa các ký tự từ a-z, các số từ 0-9 và ký tự gạch dưới _. Bạn có thể dùng chữ in hoa hoặc in thường, tuy nhiên người ta quy ước nên đặt chữ in hoa vì nó là chuẩn chung. Dưới đây là một vài tên biến hợp lệ và không hợp lệ.

Bài viết này được đăng tại [free tuts .net]

Tên hợp lệ

NAME
_NAME
NAME_
NAME01
NAME_01

Tên không hợp lệ

0_NAME
-NAME
NAME!
YOUR-NAME

Lý do không hợp lệ là các ký tự đặc biệt như như !, $, -,... được đưa vào danh sách các từ khóa dùng trong shell.

2. Gán giá trị cho biến

Để gán giá trị cho biến thì bạn dùng cú pháp sau:

variable_name=variable_value

Ví dụ:

NAME="Nguyen Van Cuong - Freetuts.net"

Như trong ví dụ này mình đã gán giá trị "Nguyen Van Cuong - Freetuts.net" cho biến NAME.

3. Truy xuất giá trị của biến

Hơi khác chút xíu so với lúc khai báo, khi bạn muốn truy xuất đến một biến thì phải dùng ký tự đô la $ đặt trước biến đó. Như ví dụ dưới đây mình đã in ra giá trị của biến NAME.

#!/bin/sh
NAME="Nguyen Van Cuong"
echo $NAME

Kết quả sẽ in ra chuỗi sau:

4. Biến chỉ đọc (giống hằng số)

Biến chỉ đọc là biến chỉ cho phép đọc, không được phép thay đổi giá trị của biến.

Để thiết lập một biến là chỉ đọc thì ta sử dụng từ khóa readonly.

DOMAIN="freetuts.net"
readonly DOMAIN

Nếu bạn cố tình thay đổi giá trị của biến thì lập tức nhận được thông báo lỗi "/bin/sh: DOMAIN: This variable is read only.".

5. Xóa biến

Nếu một biến không còn tác dụng gì cho chương trình thì bạn nên xóa nó đi bằng cách sử dụng lệnh shell để xóa nó ra khỏi dành sách biến, sau khi xóa xong thì bạn mất hoàn toàn biến đó.

Để xóa biên thì ta dùng hàm unset, cú pháp như sau:

Vi dụ:

#!/bin/sh
NAME="Cuong"
unset NAME
echo $NAME

Đoạn code này sẽ không in ra giá trị nào cả bởi vì biến NAME đã bị xóa trước khi dùng lệnh echo.

Lưu ý: Bạn không thể xóa biến được thiết lập là readonly.

6. Các thể loại biến

Có 3 loại biến như sau:

Local Variables: Biến nội bộ là biến tồn tại trong quá trình thực thi của shell, nó không có sẵn nên ban phải khai báo, đương nhiên chỉ sử dụng được trong phạm vi của chương trình đó mà thôi.

Environment Variables: Biến môi trường là biến có sẵn trong chương trình shell, vì vậy bạn có thể sử dụng nó ở bất kì đâu và bất kì chương trình shell.

Shell Variables: Biến shell là biến đặc biệt được thiết lập bởi shell