Bài giảng Hệ điều hành linux: Chương 6 Lập trình shell do Ngô Văn Công biên soạn cung cấp các kiến thức cơ bản như: Gọi thực hiện lệnh trong Shell, biến trong Shell, câu lệnh alias, tùy biến môi trường, điều khiển công việc, viết chương trình Shell,...
Trang 1Lập trình shell
Ngô Văn Công
Trang 2 Gọi thực hiện lệnh trong Shell
Biến trong Shell
Câu lệnh alias
Tùy biến môi trường
Điều khiển công việc
Viết chương trình Shell
Trang 3Invoking the Shell
bash [options] [arguments]
Bash related special files
/etc/profile – system initialization file
~/.bash_profile(.bashrc) - personal initialization file
~/.bash_history - record commands history
Trang 4Biến trong shell
Sử dụng trong lập trình shell và điều khiển môi trường
Gán giá trị cho biến: variable_name=value
Truy cập vào giá trị của biến: $variable_name
Trang 5Environment Variables
HOME - your home directory
SHELL - executable program for the current shell
PATH - paths to locate executable files
USER - your username
TERM - type of current terminal
DISPLAY - your X-Window display
Trang 6Aliasing Commands
Trang 7Customizing Environment
Trang 10 Có thể gọi từ shell script khác
Tham số được truyền từ dòng lệnh
Trang 11Hello, world
./myscript.sh
$ cat > myscript.sh
Trang 13Các biến
Các biến môi trường
Các biến xây dựng sẵn(Built-in variables)
Các biến người dùng(User variables)
Biến có thể lưu trữ số hay các ký tự
Chuỗi kỹ tự phải đặt trong dấu nháy kép hay nháy đơn
Trang 14Vị trí các tham số
$./myscript source dest
$0 = /myscript
$1 = source
$2 = dest
Trang 15Các biến đặc biệt
$$ - ID của tiến trình hiện tại
$? - Trạng thái kết thúc của tiến trình cuối cùng
Trang 16Các hàm toán học
let "sum = 4 + 3"
let "area = $len * $width"
let "percent = $num / 100"
let "remain = $n % $d"
Trang 17Biểu thức so sánh
[ expression ]
So sánh chuỗi ký tự: =, !=, -n, -z
So sánh số: -eq, -lt, -gt, -ne
Phép toán trên tập tin: -d, -f, , -e, -x
Phép toán logic: !, -o, -a
[ s1 = s2 ]
Trang 18Câu lệnh điều kiện
else let "num = $1"
fi
Trang 19Câu lệnh điều kiện (cont)
echo "One";;
2) echo "Two";;
*) echo "Unknown";;
Trang 21Câu lệnh lặp(cont)
WHILE statement
while [ expression ]; do statements
done
Example
let "num = 0"
while [ $num -lt 10 ]; do
Trang 22Một số câu lệnh khác
if [ $# -lt 2 ]; then
echo "Usage: ‘basename $0‘ source dest"
exit 1
fi
Trang 23 Function format
function func_name {
statements }
Function called
func_name param1 param2
Parameters access
Trang 24Gở lỗi (Debugging)
Hiển thị các câu lệnh và tham số khi chạy câu lệnh
$ bash -x command