Shell script là gì? Tìm hiểu chi tiêt về Shell script
Shell Script là 1 tập hợp những lệnh được thực hiện kết nối với nhau, bắt đầu 1 shell script thường xuyên có ghi chú comment mở đầu bằng #

Shell script là gì? Cách sử dụng các biến trong shell script thế nào? Bài viết sau đây, BKNS sẽ cung cấp cho bạn những thông tin cần thiết về Shell script để bạn có thể làm quen với Shell script một cách dễ dàng. Hãy cùng theo dõi nhé.

1. Shell Prompt
Trong trường hợp người dùng dùng terminal thường xuyên thì người dùng không xa lạ gì với “Command prompt”. Hình dưới đây chính là Command prompt:

Sau ký tự &, người dùng có thể gõ lệnh
Hanhio@bla-bla ~ $ date
Thứ năm, 26 Tháng mười một năm 2015 17:50:04 ICT2. Các loại Shell
Có 2 loại shell chính là:
- C shell (% chính là dấu nhắc lệnh)
- Bourne shell (mặc định có dấu nhắc lệnh là $)
Ở Bourne shell còn có những kiểu đa dạng như là:
- POSIX shell (sh)
- Bourne Again shell (bash)
- Korn shell (ksh)
- Bourne shell (sh)
Còn đối với C shell có:
- TENEX/TOPS C shell (tcsh)
- C shell (csh)
3. Shell Script

Shell Script là 1 tập hợp những lệnh được thực hiện kết nối với nhau, bắt đầu 1 shell script thường xuyên có ghi chú comment mở đầu bằng # ví dụ như:
#!/bin/bash
# Author : Không AI
# Copyright (c) Viblo.asia
# Script lệnh linh hoạt
HELLO="Xin chào, "
HELLO=$(printf "%s %s" "$HELLO" "$(whoami)" "!")
DAY="Hôm nay là ngày "
DAY=$(printf "%s %s" "$DAY" "$(date)")
echo $HELLO
echo $DAYNgười dùng cần phải gửi thông báo với hệ thống rằng chuẩn bị có shell chạy bằng dòng lệnh #!/bin/bash trước khi làm việc với script.
Với mục đích chính là soạn thảo shell script thì bạn có thể nhập lệnh trên terminal hay dùng những trình soạn thảo phù hợp đối với bạn như: kate, gedit, vim,… sau đó lưu lại file *.sh, ví dụ “test.sh”.
Tiếp theo cài đặt quyền thực hiện cho shell bằng cách nhập dòng code sau: “$chmod +x test.sh”.
Cuối cùng chạy script bằng cách sử dụng 1 trong 3 cách sau đây:
- ./test.sh
- sh test.sh
- bash test.sh.
Sau đó sẽ hiện lên kết quả:
Hanhio@bla-bla ~ $ bash test.sh
Xin chào, thao!
Hôm nay là ngày Thứ năm, 26 Tháng mười một năm 2015 18:19:25 ICT4. Cách sử dụng các biến trong shell
4.1 Đặt tên
Giống với tất cả ngôn ngữ khác, tên miền được phép đặt tên những chữ cái từ A đến Z, từ a đến z, chữ số từ 0 đến 9 và được sử dụng dấu _, tên biến không được bắt đầu bằng chữ số.
4.2 Khai báo
Để khai báo bạn thực hiện cú pháp như sau:
variable_name=variable_value
Chẳng hạn như là:
HANH=”Nguyễn Thị Hạnh”
Sử dụng
HANH="Nguyễn Thị Hạnh"
echo $HANH4.3 Xoá giá trị của biến
Hanhio@bla-bla ~ $ a="value"
Hanhio@bla-bla ~ $ echo $a
value
Hanhio@bla-bla ~ $ unset a
Hanhio@bla-bla ~ $ echo $a
Hanhio@bla-bla ~ $5. Phân loại biến
- Biến do người dùng định nghĩa: được xây dựng và quản lý bởi người sử dụng, tên đa dạng, thoả mãn yêu cầu đặt tên shell.
- Biến hệ thống: được tạo ra và quản lý bởi system, tên là chữ hoa, chẳng hạn như là:
Hanhio@bla-bla ~ $ echo $SHELL
/bin/bash
Hanhio@bla-bla ~ $ echo $TERM
xterm5. Mảng
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"Trong trường hợp người dùng dùng ksh shell thì có thể dùng cú pháp như sau:
set -A array_name value1 value2 … valuen
Còn trong trường hợp khác là người dùng có thể sử dụng bash shell thì khai báo như sau:
array_name=(value1 … valuen)
Dùng 1 giá trị trong mảng:
${array_name[index]}
hoặc mọi giá trị trong mảng:
${array_name[*]}
${array_name[@]}
Chẳng hạn như là:
#!/bin/sh
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"
echo "First Method: ${NAME[*]}"
echo "Second Method: ${NAME[@]}"Kết quả trả về như sau:
$./test.sh
First Index: Zara
Second Index: Qadir
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan DaisyCấu trúc rẽ nhánh
Cú pháp ví dụ như là:
#!/bin/sh
a=15
b=25
if [ $a == $b ]
then
echo "a is equal to b"
fi
if [ $a == $b ]
then
echo "a is equal to b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
elif [ $a -lt $b ]
then
echo "a is less than b"
else
echo "None of the condition met"
fi6. Cấu trúc lặp
6.1 Vòng lặp select
#!/bin/ksh
select DRINK in tea coffee water juice apple all none
do
case $DRINK in
tea|coffee|water|all)
echo "Go to canteen"
;;
juice|apple)
echo "Available at home"
;;
none)
break
;;
*) echo "ERROR: Invalid selection"
;;
esac
doneKết quả trả về:
$./test.sh
1) tea
2) coffee
3) water
4) juice
5) apple
6) all
7) none
#? juice
Available at home
#? none6.2 Vòng lặp until
#!/bin/sh
a=0
until [ ! $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
doneVòng lặp for:
#!/bin/sh
for var in 0 1 2 3 4 5 6 7 8 9
do
echo $var
doneVòng lặp while
#!/bin/sh
a=0
while [ $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
doneBài viết trên BKNS đã cung cấp thông tin để bạn có thể làm quen với Shell script. Hy vọng, những thông tin mà BKNS cung cấp hữu ích với bạn. Nếu còn bất cứ điều gì thắc mắc, hãy cho BKNS biết thông qua phần bình luận bên dưới. Thường xuyên truy cập website https://www.bkns.vn/ để cập nhật thêm nhiều bài viết hữu ích khác nhé!