Xu Hướng 5/2024 # Hướng Dẫn Cơ Bản Bash Script # Top 5 Yêu Thích

Unix có 2 loại shell chính:

Bourne shell còn được chia thành:

Korn shell (ksh)

Bourne shell (sh)

POSIX shell (sh)

Bourne Again shell (bash)

C shell thì được chia thành:

Bash scripts cực kỳ mạnh mẽ và hữu dụng cho lập trình viên. Nó cắt ngắn thời gian thực hiện tác vụ lại bằng chỉ một lệnh gọi hàm duy nhất. Nhiều lệnh dài cũng có thể được tổng hợp thành code thực thi được.

cat /etc/shells

Kết quả sẽ như sau:

/bin/bash

/bin/sh

/bin/tcsh

/bin/csh

Vì sao sử dụng Bash Functions?

Bash functions có thể:

Không phải thực hiện các tác vụ lặp đi lặp lại

Tiết kiệm thời gian

Tạo một loạt các hoạt động có cấu trúc cao, có khả năng lắp ráp tốt

Với function, bạn có thể nhập giá trị động vào lệnh sử dụng argument trong dòng lệnh

Đơn giản hóa các lệnh thành một đơn vị vận hành duy nhất

Tạo xong có thể chạy nhiều lần bởi bất kỳ ai. Tạo một lần thực thi nhiều lần.

Logical flows có thể được tạob ằng bash functions

Bash functions có thể thực thi khi server khởi động bằng cách thêm cron job để tự chạy

Commands có thể debugged

Có shell command tương tác

Bash đúng là một công cụ tuyệt vời để cải thiên cộng việc thường ngày của bạn để cải thiện dự án. Tiềm năng sử dụng của nó không giới hạn, vì vậy hôm nay chúng tôi sẽ chỉ bạn cơ bản trước. Sẵn sàng để viết script đầu tiên của bạn nào!

Lệnh đầu tiên bạn cần biết là lệnh mở hướng dẫn của bash:

man bash

Tiếp theo chúng ta sẽ cần tạo file .sh. Để làm vậy bạn cần dùng VIM Editor. Tạo file bằng lệnh như sau:

vim sampleFunction.sh

Giờ đã vào trong file .sh, chúng ta có thể chỉnh sửa nó

Nó sẽ cho bạn thấy một số ví dụ của Bash command và cách dụng. Mỗi bash script bắt đầu với các dòng sau:

#!/bin/bash

Lệnh bên dưới hiển thị đường dẫn của bash script.

which bash

Nó sẽ cho bạn kết quả như sau:

/bin/bash

Cấu trúc bash thông thường như sau:

function functionName {

first command

second command

}

Nó có thể được viết thành:

functionName (){

first command

second command

}

Trong một dòng, bạn có thể viết như sau:

functionName() { first command; second command; }

caca

Ví dụ cho hàm này là ở bên dưới, chúng tôi tạo thư mục trước rồi sau đó trỏ đường dẫn tới thư mục mới:

sampleFunction () {

mkdir -p $1

cd $1

}

$1 đại diện cho tham số của dòng lệnh. Bash có thể tạo input động trong dòng lệnh. Để kiểm tra hàm này, bạn hãyt hực thi:

sampleFunction myDir

Tại đây myDir là tên một thư mục hợp lệ sẽ được tạo. Nếu bạn kiểm tra thư mục hiện hành bằng lệnh pwd bạn sẽ thấy bạn đang ở trong thư mục vừa tạo có tên myDir.

Tương tự vậy, tất cả các lệnh đã được dùng có thể thêm vào thành bash function.

Hãy nhớ, khi bạn đã thực hiện xong với VIM editor để chỉnh file .sh, bạn lưu lại và thoát bằng cách nhấn nút ESC để đi tới chế độ dòng lệnh, rồi gõ :wq để lưu và thoát.

Một trong các ví dụ của bash function là:

#!/bin/bash

testfunction(){

echo "My first function"

}

testfunction

Nếu bạn lưu script này trong chúng tôi và thực thi nó bằng ./testFunction.sh, vậy kết quả bạn sẽ thấy là:

My first function

Echo sẽ in kết quả ra màn hình. Nếu bạn đổi vị trí của hàm này với một lệnh gọi hàm, vậy kết quả sẽ ra lỗi. Code snippet bên dưới sẽ xuất lỗi:

#!/bin/bash

testfunction

testfunction(){

echo "My first function"

}

Vậy đầu tiên bạn sẽ cần định nghĩa hàm này và kích hoạt nó.

Bash functions chấp nhật mọi số là tham số. BÊn dưới là ví dụ nó lấy 2 tham số:

#!/bin/bash

testfunction(){

echo $1

echo $2

}

testfunction "Hello" "World"

Bạn có thể sử dụng input trực tiếp và thực hiện bash function. Kết quả như sau:

#!/bin/bash

addition(){

sum=$(($1+$2))

return $sum

}

read -p "Enter a number: " int1

read -p "Enter a number: " int2

add $int1 $int2

echo "The result is : " $?

Trong ví dụ trên, giá trị cộng thêm được gắn vào một tổngm nó trả về từ hàm. Interactive input được dùng bởi lệnh read cho cả 2 số. Cuối cùng, kết được in ra bằng dấu $? Chứa giá trị trả về từ $sum của hàm này.

Bash functions luôn trả về chỉ một giá trị.

Bash scripts hỗ trợ:

Bên dưới là một ví dụ ngắn của While loop của bash script.

#!/bin/bash

isvalid=true

count=1

while [ $isvalid ]

do

echo $count

if [ $count -eq 5 ];

then

break

fi

((count++))

done

Ví dụ trên sử dụng while và if. Nó thực thi vòng lặp 5 lần trước khi thoát sau khi thực thi các điều kiện if.

Kết quả sẽ như sau:

1

2

3

4

5

For loop được dùng để tăng hoặc giảm bộ đếm. Một ví dụ của for loop là:

#!/bin/bash

do

echo -n "$count "

done

Kết quả của for loop sẽ thành:

10 9 8 7 6 5 4 3 2 1

Với statement If, bạn cũng có thể định nghĩa Else if. Ví dụ như sau:

#!/bin/bash

echo "Enter a valid number"

read n

if [ $n -eq 101 ];

then

echo "This is first number"

elif [ $n -eq 510 ];

then

echo " This is second number "

elif [ $n -eq 999 ];

then

echo " This is third number "

else

echo "No numbers over here"

fi

Ví dụ ở trên cũng có thể được viết dưới case statement:

#!/bin/bash

echo " Enter a valid number"

read n

case $n in

101)

Echo " This is the first number " ;;

510)

echo " This is the second number " ;;

999)

echo " This is the third number " ;;

*)

echo " No numbers over here " ;;

esac

Trong case statements, dấu ;; đại diện cho việc cách nhau từng trường hợp

Vậy là bạn đã hoàn tất học cơ bản của bash function rồi đó. Không khó lắm phải không? Bash mạnh mẽ và lại dễ dùng. Sau khi nắm được cơ bản bash script, bạn có thể đào sâu hơn và tạo nhiều mẫu ví dụ thú vị hơn để khám phá tìm năng của bash function. Chúc may mắn!