Khuyến mãi
Trang chủ » Hướng dẫn » Shell » Shell script là gì? Tìm hiểu chi tiêt về Shell script

Shell script là gì? Tìm hiểu chi tiêt về Shell script

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é.

Shell script là gì?

Shell script là gì?

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:

Shell 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

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é!

Call Back Icon

Xin chào quý khách!

Quý khách đang cần tư vấn dịch vụ, xin vui lòng nhập số điện thoại để chúng tôi gọi lại.

Tổng đài 24/07: 1900 63 68 09

Đăng ký nhanh dịch vụ

Quý khách vui lòng gửi yêu cầu cho BKNS, chúng tôi sẽ liên hệ lại ngay với bạn.