Những điều cần biết về lập trình shell trong linux mới nhất 2020 – https://final-blade.com

Lập trình shell trong linux là một trong những từ khóa được search nhiều nhất về chủ đề lập trình shell trong linux trong bài viết này, lamweb.vn sẽ viết bài Những điều cần biết về lập trình shell trong linux mới nhất 2020

Những điều Cần Biết Về Lập Trình Shell Trong Linux Mới Nhất 2020

Những điều cần biết về lập trình shell trong linux mới nhất 2020

I. Shell script là gì

Shell là chương trình tiếp xúc với người dùng. Có nghĩa là shell gật đầu những lệnh từ bạn ( keyboard ) và thực thi nó. Nhưng nếu bạn mong ước dùng nhiều lệnh chỉ bằng một lệnh, thì bạn hoàn toàn có thể lưu chuỗi lệnh vào text file và bảo shell thực thi text file này thay vì nhập vào những lệnh. Điều này gọi là shell script .

Định nghĩa: Shell script là một chuỗi các lệnh được viết trong plain text file. Shell script thì như batch file trong MS-DOS nhưng mạnh hơn.

vì sao phải viết shell script :
• Shell script đủ nội lực nhận input từ người dùng, file hoặc output từ màn hình hiển thị .
• tiện nghi để tạo nhóm lệnh riêng .
• cắt giảm thời hạn .
• auto sử dụng một vài việc làm liên tục .

II. Hướng dẫn tạo và thực thi chương trình shell

step1 : Tạo file hello.sh ( trong thư mục cd / home / tuanvh / ) content như sau :
dùng vi, emacs, gedit … Để biên soạn thảo nội dung

#!/bin/bash
echo "hello world"

thể loại thứ nhất tất cả chúng ta luôn đặt # ! / bin / bash, đây là cú pháp bắt buộc. Sau # được hiểu là comment, chú thích của những đoạn mã .
step2 : Sau đó, để script hoàn toàn có thể thực thi ta phải cấp quyền cho nó

chmod 0777 hello.sh

step3 : Thực thi file shell .

// đủ sức chạy file bằng 1 số giải pháp sau
–  bash hello.sh
–  sh hello.sh
–  ./hello.sh

III. Biến trong shell

Trong Linux shell có 2 loại biến :
Biến nền tảng :

  • tạo ra và quản lý bởi Linux.
  • Tên biến là CHỮ HOA

Biến do người dùng khái niệm
– Tạo ra và quản trị bởi user – Tên biến là chữ thường

1. Một số biến nền tảng

VD : file hello.sh

#!/bin/bash
echo "hello"
echo $BASH_VERSION
echo $BASH
echo $HOME
echo $PATH

Kết quả : run. / hello.sh

hello
4.2.24(1)-release
/bin/bash
/home/vu.huy.tuan
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

2. Biến user, cú pháp, quy tắc đặt tên

cú pháp :

tên_biến=value
  • tên_biến phải khởi đầu bằng ký tự
  • k có dấu chiêu thức 2 bên toán tử = khi gán giá trị cho biến
#Đúnga=1#saia = 1#saia= 1
  • Tên biến có phân biệt chữ hoa, thường
#các biến sau đây là khác nhaua=1
A=2
  • Một biến không có giá trị khởi tạo thì bằng NULL
  • k được sử dụng dấu ?, * để đặt tên các biến

ECHO Để in giá trị của biến
Cú pháp :

echo[option][string,variables…]#exampleecho $tên_biến
  • In một số ký tự đặc biệt trong tham số với tùy lựa chọn -e:
\a	alert	(bell)
\b	backspace
\c	suppress trailing new	line
\n	new	line
\r	carriage return\t	horizontal tab
\\	backslash//example
$ echo-e "Hello\tTuan"#output:  Hello   Tuan$ echo-e "Hello\nTuan"#outputHello
Tuan

IV : Các phép toán số học

Shell cung ứng cho ta 1 số ít biểu thức toán học .
Cú pháp :

expr toán_hạng_1 toán_tử toán_hạng_2

example :

# phép cộng$expr 1 + 2# phép trừ$expr 5 - 1# phép chia$expr 8 / 3# output =2 phép chia chỉ get phần nguyên$expr 8 Tỷ Lệ 5# output =3 phép chia quét phần dư$expr 10 \* 2 # output = 20 phép nhân

Chú ý: cần có dấu cách trước và sau toán tử.

# example sai cú pháp$expr 1+2
$expr 5- 1

Các dấu ngoặc

  • hàng loạt các ký tự trong dấu ngoặc kép đều k có ý nghĩa ñnh toán, trừ những ký tự sau \ hoặc $
  • Dấu nháy ngược (`): nghĩa là yêu cầu thực thi lệnh
#example$ echo"ngay hom nay la: `date`"
#ouput: ngay hom nay la: Wed Apr 27 10:43:59 ICT 2016
$ echo `expr 1 + 2`
#output = 3$echo "expr 1 + 2"#ouput: expr 1 + 2

* * Kiểm tra thực trạng trả về của 1 câu lệnh cú pháp

$echo $?

– thực trạng 0 nếu câu lệnh chấm hết thành công xuất sắc. – khác 0 nếu kết thúc có lỗi

# xóa file không tồn tạirm abc.txt #output messge:( rm: cannot remove `abc.txt': No such file or directory )# tra cứu thực trạng câu lệnh rm abc.txt$echo $? #output 1 nghĩa là có lỗi$ echo "ngay hom nay la: `date`"#ouput: ngay hom nay la: Wed Apr 27 10:43:59 ICT 2016$echo $? #output 0, nghĩa là thành công xuất sắc

V : Cấu trúc điều khiển và tinh chỉnh trong shell script

Cũng giống như những ngôn từ lập trình không giống, Shell Scripts cũng phân phối những vòng lặp : “ for ”, “ while ” ; và lệnh rẽ nhánh “ if ”, “ case ” .
1. Cú pháp rẽ nhánh If Cú pháp :

if điều_kiện
then
câu lệnh 1
…
fi

if … else … fi
Cú pháp :

if điều_kiện then
	câu_lệnh_1
….elsecâu_lệnh_2
fi

Vòng lặp For
Cú pháp :

for tên biến in listdo# Khối lệnh# Thực hiện từng mục trong mục lục cho đến cho đến hết# (Và lặp lại hàng loạt các lệnh nằm trong "do" và "done")done#hoặc sử dụng forfor (( expr1; expr2; expr3 ))do# Lặp cho đến khi biểu thức expr2 trả về trị giá TRUEdone

example

#  for 1for i in 1 2 3 4 5doecho $i
done#output: 1 2 3 4 5#for 2for (( i = 0 ; i <= 5; i++ )) # bao quanh bằng (())doecho $i
done#ouput 1 2 3 4 5

3. Vòng lặp While

while[Điều kiện]docommand1
command2
command3	..	....
done

example demo1.sh

#!/bin/shecho"Nhap vao cac so can tinh tong, nhap so am de exit"sum=0
read iwhile [ $i -ge 0 ] # nếu i >= 0dosum=`expr $sum + $i`
read i # nhận giá trị từ người dùngdoneecho"Total: $sum."

hiệu quả sau khi chạy. / demo1.sh

#ouput./demo1.sh
Nhap vao cac so can tinh tong, nhap so am de exit1
5
4-1
Total= 10.

VI: Lệnh kiểm tra

Lệnh test được sử dụng để tra cứu một biểu thức là đúng hay k và trả lại
– 0 nếu biểu thức đúng
– không giống 0 sai
Cú pháp :

thanh tra rà soát biểu_thức HOẶC[biểu thức]

Các phép toán test

Mathematical Operator in,Shell Scrip Meaning Normal Arithmetical/ Mathematical Statements
For thanh tra rà soát statement with if command For [ expr ] statement with if command
-eq is equal lớn 5 == 6 if test 5 -eq 6 if [ 5 -eq 6 ]
-ne is not equal lớn 5 != 6 if tra cứu 5 -ne 6 if [ 5 -ne 6 ]
-lt is less than 5 < 6 if kiểm tra 5 -lt 6 if [ 5 -lt 6 ]
-le is less than or equal lớn 5 <= 6 if kiểm tra 5 -le 6 if [ 5 -le 6 ]
-gt is greater than 5 > 6 if thanh tra rà soát 5 -gt 6 if [ 5 -gt 6 ]
-ge is greater than or equal lớn 5 >= 6 if kiểm tra 5 -ge 6 if [ 5 -ge 6 ]

NOTE : = = is equal, ! = is not equal .
For string Comparisons use

Operator Meaning
string1 = string2 string1 is equal to string2
string1 != string2 string1 is NOT equal to string2
string1 string1 is NOT NULL or not defined
-n string1 string1 is NOT NULL and does exist
-z string1 string1 is NULL and does exist

Toán tử logic

Operator Meaning
! Expression Logical NOT
expression1,-a,expression2 Logical AND
expression1,-o,expression2 Logical OR

thanh tra rà soát file, thư mục

tra cứu Meaning
-s file Non empty file
-f file Is File exist or normal file and not a directory
-d dir Is Directory exist and not a file
-w file Is writeable file
-r file Is read-only file
-x file Is file is executable

Nguồn : https://viblo.asia/