Shell script là gì? Tìm hiểu chi tiêt về Shell script
Thịnh Văn Hạnh 26/12/2019 1998 Lượt xem Chia sẻ bài viết
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é.
Tóm Tắt Bài Viết
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 ICT
2. 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 $DAY
Ngườ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 ICT
4. 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 $HANH
4.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 xterm
5. 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 Daisy
Cấ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" fi
6. 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 done
Kết quả trả về:
$./test.sh 1) tea 2) coffee 3) water 4) juice 5) apple 6) all 7) none #? juice Available at home #? none
6.2 Vòng lặp until
#!/bin/sh a=0 until [ ! $a -lt 10 ] do echo $a a=`expr $a + 1` done
Vòng lặp for:
#!/bin/sh for var in 0 1 2 3 4 5 6 7 8 9 do echo $var done
Vòng lặp while
#!/bin/sh a=0 while [ $a -lt 10 ] do echo $a a=`expr $a + 1` done
Bà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é!