Shell Script
Bài đăng này đã không được cập nhật trong 4 năm
1. Shell Script là gì
- Shell Script là 1 file thực thi có extension là
sh
có thể thực thi trên các thiết bị Unix. - Để làm quen thì ta có thể tạo 1 file
hello-world.sh
với nội dung như sau:#!/bin/bash # Author: thanhlt-1007 # Description: Hello World Schell Script echo "Hello World"
- Các thành phần của file shell script bao gồm:
#!/bin/bash
: thông báo với system chuẩn bị có file shell script chuẩn bị được chạy.# Author
: comment code.echo
: script được thực thi.- Để chạy file shell script cần cấp quyền cho file qua câu lệnh
chmod
:chmod +x hello-world.sh
- Chạy file shell script:
sh hello-world.sh
- Tiếp theo chúng ta sẽ tìm hiểu các loại script có thể thực thi trên shell script.
2. Shell Script với Unix/Linux command
- Trong Unix/Linux ta có thể thực thi 1 số commnd trên terminal, ví dụ echo, ls, ... hoặc date, whoami
- Những command này cũng có thể được sử dụng trong shell script
- Ví dụ tạo file
command.sh
với nội dung như sau#!/bin/bash echo "Unix/Linux command" MESSAGE=$(printf "To day is %s, Hello %s" "$(date)" "$(whoami)") echo $MESSAGE
- Kết quả thu được khi chạy file
Unix/Linux command To day is Tue Sep 1 15:02:01 +07 2020, Hello SUN-ASTERISK\le.tan.thanh
3. Shell Script với variables
- Cũng như các ngôn ngữ lập trình khác, chúng ta cũng có thể sử dụng variable với shell script.
- Để sử dụng variable trong shell script cần chú ý 1 số điểm như sau
- Không có space xung quanh
=
khi khởi tạo giá trị cho biến#!/bin/bash # Invalid assignment VAR = "value" # Valid assignment VAR="value"
- Chúng ta cũng có thể sử dụng command
read
để nhận giá trị do người dùng nhập vào từ terminal#!/bin/bash echo "What is your name ?" read MY_NAME echo "Hello $MY_NAME"
- Kết quả thu được
What is your name ? le tan thanh Hello le tan thanh
- Enter khi đã nhập xong nội dung muốn nhập.
4. Loops:
- Shell Script hỗ trợ
for
vàwhile
để thực hiện các thao tác được lặp lại nhiều lần
a. for:
- Ví dụ về
for
#!/bin/bash for i in 1 2 3 4 5 do echo "Looping ... i is set to $i" done
- Kết quả thu được
Looping ... i is set to 1 Looping ... i is set to 2 Looping ... i is set to 3 Looping ... i is set to 4 Looping ... i is set to 5
- Các giá trị được gọi trong vòng loop ví dụ trên là mảng số nguyên
[1, 2, 3, 4, 5]
. - Chúng ta có thể sử dụng các giá trị khác, ví dụ
[hello, 1, goodbye]
.#!/bin/bash for i in hello 1 goodbye do echo "Looping ... i is set to $i" done
- Kết quả thu được
Looping ... i is set to hello Looping ... i is set to 1 Looping ... i is set to goodbye
b. while:
- Ví dụ về
while
#!/bin/sh INPUT_STRING="" while [ "$INPUT_STRING" != "bye" ] do echo "Please type something in (bye to quit)" read INPUT_STRING echo "You typed $INPUT_STRING" done
- Kết quả thu được
Please type something in (bye to quit) hello You typed hello Please type something in (bye to quit) bye You typed bye
- Trong trường hợp sử dụng
:
, mệnh đềwhile :
trả vềtrue
và đoạn code bên trongdo done
được thực thi#!/bin/sh INPUT_STRING="" while : do echo "Please type something in (^C to quit)" read INPUT_STRING echo "You typed $INPUT_STRING" done
- Kết quả thu được
Please type something in (CTRL + C to quit) bye You typed bye Please type something in (CTRL + C to quit) ^C
5. If:
a. if
- Ví dụ về
if
#!/bin/sh if true then echo "If statement" fi
- Nhớ kết thúc câu lệnh với
fi
(ngược lại củaif
). - Kết quả thu được
If statement
b. else
- Ví dụ về
else
#!/bin/sh if false then echo "If statement" else echo "Else statement" fi
- Với
else
thì chúng ta không cầnthen
. - Kết quả thu được.
sh Else statement
c. elif
- Ví dụ về
elif
#!/bin/sh if false then echo "If statement" elif true then echo "Elif statement" fi
- Kết quả thu được
Elif statement
6. case:
- Ví dụ về
case
#!/bin/sh
echo "Please talk to me ..."
read INPUT_STRING
case $INPUT_STRING in
hello)
echo "Hello yourself!"
;;
bye)
echo "See you again!"
;;
*)
echo "Sorry, I don't understand"
;;
esac
- Case sẽ đi với
in
vàesac
(ngược lại củacase
) - Các giá trị được so sánh theo sau bởi
)
- Giá trị mặc định là
*
- Kết qủa thu được
Please talk to me ... hello Hello yourself!
Please talk to me ... bye See you again!
Please talk to me ... ahihi Sorry, I don't understand
7. Document
- Trên đây chỉ là 1 vài ví dụ đơn giản về shell script
- Bạn có thể tham khảo thêm tại https://www.shellscript.sh/
All rights reserved