Hướng Dẫn Lập Trình Shell Trên Linux

      12

Bài viết này giới thiệu các bạn về bí quyết lập trình bash shell siêu cơ bản trên hệ quản lý Linux, ra mắt với cách chúng ta về tính năng và cách thực hiện của lập trình bash shell nhằm các bạn cũng có thể tự mày mò và tự học tập Linux cơ bạn dạng dễ dàng hơn.

Bạn đang xem: Hướng dẫn lập trình shell trên linux

1. Trình làng về lập trình sẵn bash shell

Giới thiệu về thiết kế bash shell

Shell script là một trong chương trình được sử dụng cho nhiều mục tiêu khác nhau, chẳng hạn như thật thi lệnh shell, chạy các lệnh thuộc nhau, tùy chỉnh thiết lập các tác vụ quản lí trị, thực hiện tự động hóa,... Mà bạn thường xuyên thực hiện trên laptop của mình.

Shell script mang lại phép họ lập trình những lệnh theo một chuỗi và hệ thống sẽ triển khai chúng. Viết shell script chất nhận được bạn sử dụng các tác dụng lập trình như những vòng lặp for, những câu lệnh if/then/else... Shell script tất cả sẵn trên đa số các bản phân phối Linux, bên trên MacOS và Cygwin bên trên Windows.

Shell script chỉ là các tập tin văn bản đơn giản. Bạn cũng có thể sử dụng bất kỳ trình biên soạn thảo văn bạn dạng để viết như: vim, nano, gedit, emacs, vscode,...

Tiện ích của shell script:

Nó có thể nhận đầu vào từ bạn dùng, tệp, hoặc hiệu quả từ màn hình.Giúp cho bạn cũng có thể tạo nhóm lệnh riêng.Shell script giúp họ tiết kiệm thời gian.Có kĩ năng thực hiện tự động một số các bước mà bạn thường xuyên trên máy vi tính của mình.2. Những khái niệm cơ bản khi viết bash shell

Các tập lệnh được lưu trữ dưới dạng những tập tin chúng ta cũng có thể đặt thương hiệu tùy ý đến tập lệnh shell. Tuy vậy điều quan trọng đầu tiên là nó cần ban đầu với một shebang ngay loại đầu tiên:

#!/bin/bashTiếp theo thì nó phải là một trong những tập tin thực thi. Để rất có thể phân quyền mang lại tập tin là thực hiện thì chúng ta sử dụng lệnh chmod:

chmod u+x myscriptLệnh trên giúp cho tập tin myscript của bạn cũng có thể thực thi được cho người dùng của bạn.

Bạn rất có thể thực thi tập lệnh nếu như bạn đang sống trong và một thư mục bằng phương pháp gọi nó ./myscript hoặc áp dụng đường dẫn đầy đủ đến nó.

Ngoài cách thực hiện trên bạn cũng có thể sử dụng lệnh bash để thực thi cú pháp như sau:

bash duong-dan-file-scriptVí dụ 1: Sử dụng tuấn kiệt chú mê thích trong bash shell

Chú ưng ý là trong số những điều đặc trưng nhất lúc viết chương trình. Một dòng bắt đầu bằng cam kết tự # là 1 trong những chú mê thích (ngoại trừ mẫu shebang sinh sống trên).

#!/bin/bash# this is a commentMột phản hồi cũng tất cả thể bước đầu ở cuối dòng:

#!/bin/bashecho myscript # this is a commentVí dụ 2: trở nên và toán tử vào bash shell

Chúng ta có thể đặt biến bằng phương pháp sử dụng toán tử = cú pháp như sau:

name=valueVí dụ:

NUMBER=1999name=thietkewebhcm.com.vnSau lúc để biến chúng ta có thể in một biến bằng phương pháp sử dụng lệnh echo và thêm một cam kết tự $ tiếp theo là tên biến:

echo $NUMBERecho $nameBash shell sử dụng một số toán tử số học thường được sử dụng trên những ngôn ngữ lập trình:


Phép so sánhÝ nghĩa
hoặc -ltBé hơn
hoặc -leBé rộng bằng
> hoặc -gtLớn hơn
>= hoặc -geLớn hơn bằng
== hoặc -eqBằng nhau
-neKhông bằng

Ví dụ sử dụng so sánh giá trị vào bash shell:

#!/bin/bashage=23min_age=18if demo $age -lt $min_age then echo "Not old enough"fiToán tử logic:

&& xúc tích và|| súc tích hoặc

Ví dụ 3: các biến đặc biệt trong Linux. Những biến này được dành cho các chức năng cụ thể.

Ký tự $ đại diện cho số ID tiến trình, hoặc PID.

localhost ~># echo $$6565Bảng tiếp sau đây thống kê một vài biến quan trọng mà chúng ta có thể sử dụng trong lập trình sẵn bash shell:


BiếnÝ nghĩa
$0Tên tập tin của tập lệnh hiện nay tại.
$nCác trở thành này tương ứng với những đối số cơ mà tập lệnh được gọi. Ở phía trên n là số nguyên dương tương xứng với vị trí của một đối số (đối số trước tiên là $1, đối số sản phẩm công nghệ hai là $2,...).
$#Số lượng đối số được cung cấp cho một tập lệnh.
$*Tất cả các đối số được trích dẫn cấp đôi.
$
Tất cả các đối số được trích dẫn riêng rẽ lẻ.
$?Trạng thái thoát của lệnh ở đầu cuối được thực thi.
$!Số các bước của lệnh nền cuối cùng.

localhost ~># vi test.sh#!/bin/shecho "Ten file hien tai: $0"echo "Doi so 1: $1"echo "Doi so 2: $2"echo "Doi so 3: $3"echo "Tong cac doi so: $#"echo "Tat ca doi so duoc trich dan: $
localhost ~># ./test.sh https:// thietkewebhcm.com.vn .netTen tệp tin hien tai: ./test.shDoi so 1: https://Doi so 2: thietkewebhcm.com.vnDoi so 3: .netTong cac doi so: 3Tat ca doi so duoc trich dan: https:// thietkewebhcm.com.vn .netTat ca doi so duoc trich dan: https:// thietkewebhcm.com.vn .netVí dụ 2: phối kết hợp tham số đặc biệt quan trọng #
localhost ~># vi test_2.sh#!/bin/sh#Su dung bien dac biet $*for a in $*doecho $adone#Su dung bien dac biet $
localhost ~># ./test_2.sh Day la trang web thietkewebhcm.com.vnDaylawebsitethietkewebhcm.com.vnDaylawebsitethietkewebhcm.com.vnVí dụ 3: tâm trạng thoát của lệnh sau cùng được thực thi:

localhost ~># cat exit.sh#!/bin/shecho "Trang thai thoat cua lenh cuoi cung duoc thuc thi: $?"Chạy tệp cùng với lệnh bash:

localhost ~># bash exit.shTrang bầu thoat cua lenh cuoi cung duoc thuc thi: 0Theo mang định thì số đông các lệnh được thực hiện thành công thì trả về một tinh thần thoát là 0 cùng 1 nếu bọn chúng không thành công.

3. Sử dụng bash shell3.1. áp dụng bash shell in ra màn hình

Chạy lệnh sau từ đồ vật đầu cuối để triển khai một câu lệnh bash rất solo giản. Đầu ra của lệnh sẽ là thietkewebhcm.com.vn.

localhost ~># echo "thietkewebhcm.com.vn"thietkewebhcm.com.vnNhưng khi chúng ta cần thực hiện in ra màn hình nhiều áp sạc ra và tiến hành thường xuyên thì câu hỏi gõ lệnh bên trên bash khôn cùng tốn thời gian vì vậy họ sẽ tạo thành một bash shell in ra màn hình, khi cần họ chỉ cần chạy tệp tin bash shell đó. Công việc như sau:

Đầu tiên bọn họ sử dụng trình biên soạn thảo để tạo nên một tập tin bash. Ở đây chúng ta dùng trình soạn thảo văn bạn dạng vi được để sản xuất tập tin và tên tập tin được đặt là test.sh:

localhost ~># vi test.shThêm tập lệnh sau vào tập tin test.sh với lưu tập tin:

#!/bin/bashecho "test"echo testecho thietkewebhcm.com.vnĐể rất có thể chạy tập tin bash chúng ta có thể chạy bằng 2 bí quyết sau:

Chạy tập tin bash bằng cách sử dụng lệnh bash:

localhost ~># bash test.shtesttestthietkewebhcm.com.vnChạy tập tin bash bằng cách thiết lập quyền thực thi so với tập tin bash và chạy tập tin:

localhost ~># ./test.shtesttestthietkewebhcm.com.vnVí dụ 1: sử dụng chú ham mê trong bash shell biểu tượng # được thực hiện để thêm chú thích dòng đơn trong tập lệnh bash. Chế tác một tập tin mới mang tên comment.sh và thêm tập lệnh sau với nhận xét chiếc đơn.

localhost ~># vi comment.sh#!/bin/bash# Tinh tong gia tri cua nhì so 55 va 75((Tong=55+75))#In ket quaecho Tong la: $TongChạy tập tin cùng với lệnh bash.

localhost ~># bash comment.shTong la: 130Ví dụ 2: bạn có thể sử dụng chú thích những dòng trong bash theo nhiều phương pháp khác nhau. Chế tác một bash mới có tên comments.sh và thêm tập lệnh sau. Ở đây hình tượng : và " được sử dụng để thêm chú thích các dòng trong bash shell.

localhost ~># vi comments.sh#!/bin/bash: "Vi du sau se tinhgia tri binh phuong cua so 5."((area=5*5))echo Ket qua: $areaChạy tập tin cùng với lệnh bash.

localhost ~># bash comments.shKet qua: 25Ví dụ 3: Bash thực hiện lệnh mkdir để sản xuất một folder mới.

Xem thêm: Nồi nấu phở 100 lít phù hợp với những quán ăn nào? 

localhost ~># ls -ltotal 4-rw-r--r--. 1 root root 66 Jun 13 10:37 folder.shdrwxr-xr-x. 2 root root 6 Jun 13 10:37 test

3.2. Sử dụng kết cấu điều khiếu nại trong bash shell

Chúng ta rất có thể sử dụng cấu trúc điều kiện với một hoặc những điều kiện. Trong đó kết cấu điều kiện bắt đầu bằng if và xong bằng fi.

Một số cú pháp thường được sử dụng của kết cấu điều kiện:

Câu lệnh if đơn cú pháp như sau:

if conditionthen commandfiCâu lệnh if tiếp nối else:

if conditionthen commandelse anothercommandfiLồng if cùng theo tiếp đến là else:

if conditionthen commandelif anothercommandelse yetanothercommandfiVí dụ 1: chế tạo file có tên if.sh. Chúng ta gán phát triển thành n bằng đôi mươi và tiến hành điều kiện so sánh nếu $n nhỏ nhiều hơn 10 in công dụng ra màn hình số gồm một chữ số và ngược lại in ra màn hình số có hai chữ số:

localhost ~># bash if.shSo teo hai chu soVí dụ 2: áp dụng câu lệnh if với xúc tích AND:

Chúng ta hoàn toàn có thể xác định nhiều đk trong câu lệnh if bằng xúc tích và ngắn gọn AND (&&). Chế tạo ra một tệp có tên if_and.sh giá chỉ trị của các biến tên người dùng và mật khẩu sẽ được nhập vào và đối chiếu với username va password vào if. Trường hợp cả hai quý hiếm khớp nhau thì cổng đầu ra sẽ là người tiêu dùng hợp lệ , giả dụ không, đầu ra output sẽ là người tiêu dùng không phù hợp lệ .

localhost ~># vi if_and.sh#!/bin/bashecho "Nhap ten nguoi dung:"read usernameecho "Nhap mat khau"read passwordif << ( $username == "admin" && $password == "admin" ) >>; thenecho "Nguoi dung hop le"elseecho "Nguoi dung khong hop le"fiChạy tệp với lệnh bash.

localhost ~># bash if_and.shNhap ten nguoi dung:adminNhap mat khauadminNguoi dung hop leVí dụ 3: thực hiện câu lệnh if với lô ghích OR

Tạo một file mang tên if_or.sh và quý giá của n sẽ được nhập từ bạn dùng. Ví như giá trị bởi 150 hoặc 400 thì đầu ra sẽ là các bạn đã nhập đúng, ngược lại thì trả về hiệu quả bạn nhập sai.

localhost ~># vi if_or.sh#!/bin/bashecho "Nhap gia tri vao:"read nif << ( $n == 150 || $n == 400 ) >>thenecho "Ban da nhap dung"elseecho "Ban da nhap sai"fiChạy tệp với lệnh bash.

localhost ~># bash if_or.shNhap gia tri vao:200Ban domain authority nhap saiVí dụ 4: Nếu bạn muốn kiểm tra sự lâu dài của folder trong vị trí hiện tại trước khi triển khai lệnh mkdir thì có thể sử dụng tùy lựa chọn -d để kiểm soát một thư mục ví dụ có tồn tại hay không như sau:

localhost ~># vi folder2.sh#!/bin/bashecho "Nhap ten thu muc can tao: "read nameif < -d "$name" >thenecho "Ten thu muc da ton tai"else`mkdir $name`echo "Tao thu muc thanh cong"fiChạy tệp bởi lệnh bash.

localhost ~># ls -ltotal 8-rw-r--r--. 1 root root 161 Jun 13 10:42 folder2.shdrwxr-xr-x. 2 root root 6 Jun 13 10:37 testlocalhost ~># ls -ltotal 8-rw-r--r--. 1 root root 161 Jun 13 10:42 folder2.shdrwxr-xr-x. 2 root root 6 Jun 13 10:37 testdrwxr-xr-x. 2 root root 6 Jun 13 10:43 test1

3.2. Sử dụng cấu trúc vòng lặp trong bash shell

Một số cú pháp cấu tạo vòng lặp thường được sử dụng:

Vòng lặp while

while conditiondo commanddoneVòng lặp until

until conditiondo commanddoneVòng lặp for: tái diễn một danh sách và thực hiện một lệnh cho từng lần lặp

for thành phầm in listdo commanddoneTrong các vòng lặp, chúng ta cũng có thể sử dụng các câu lệnh break tuyệt continue để phá tan vỡ vòng lặp hoặc chỉ việc bỏ qua cách lặp hiện tại tại.

Ví dụ 1: sử dụng vòng lặp for

Tạo một tệp mang tên for.sh và thêm tập lệnh sau bởi vòng lặp for. Ở đây, vòng lặp for sẽ tái diễn trong 5 lần cùng in toàn bộ các quý giá của biến, cỗ đếm trong một dòng.

localhost ~># vi for.sh#!/bin/bashfor ((n=5; n>0; n--))doecho -n "$n "doneprintf " "Chạy tệp cùng với lệnh bash.

localhost ~># bash for.sh5 4 3 2 1Ví dụ 2: áp dụng vòng lặp while

Tạo một tệp có tên while.sh và thêm tập lệnh sau bởi vòng lặp while. Ở đây, vòng lặp while sẽ in tất cả các số từ một đến 5.

localhost ~># vi while.sh#!/bin/sha=1while < $a -le 5 >do echo $a a=`expr $a + 1`doneChạy tệp cùng với lệnh bash.

localhost ~># bash while.sh12345Ví dụ 3: áp dụng vòng lặp until

Tạo một tệp có tên until.sh với thêm tập lệnh sau bởi vòng lặp until. Ở đây, vòng lặp until đang in tất cả các số từ 10 mang đến 15.

localhost ~># bash until.sh101112131415

3.3. Kết cấu case vào bash shell

Cấu trúc của case nó được ban đầu bằng case và hoàn thành bằng esac mang đến phép chúng ta chọn những tuyến khác nhau tùy thuộc vào một trong những giá trị tất cả cú pháp như sau:

case value in a) command #... ;; b) command #... ;;esacChúng ta yêu cầu thêm một vệt chấm phẩy kép (;;) sau mỗi trường hợp.

Ví dụ: chế tạo một tệp mới mang tên case.sh với thêm tập lệnh sau. Đầu ra của tập lệnh sau đã giống cùng với tập lệnh vào ví dụ:

localhost ~># vi case.sh#!/bin/bashecho "Nhap gia tri n:"read ncase $n in10|15)echo "Ban doan dung so n thu nhat" ;;119)echo "Ban doan dung so n thu hai" ;;389)echo "Ban doan dung so n thu ba" ;;*)echo "Thu lai lan tiep theo" ;;esacChạy tệp cùng với lệnh bash.

localhost ~># bash case.shNhap gia tri n:399Thu lai lan tiep theo

3.4. Cú pháp chọn lựa trong bash shell

Cấu trúc select vẫn hiển thị cho tất cả những người dùng một menu các lựa chọn để người dùng rất có thể lựa chọn:

select tác phẩm in listdo commanddoneVí dụ: chế tác tập tin select.sh và tạo các tùy lựa chọn như sau:

localhost ~># vi e.sh#!/bin/bashselect n in "di bien" "an uong" "di nui" "xem phim" "the thao"do if < "$n" == "" >; then echo "Ban tốt chon mot"; else break fidoneecho "So thich cua ban $n"localhost ~># bash e.sh1) di bien2) an uong3) di nui4) coi phim5) the thao#? 5So thich cua ban the thao

3.5. Thao tác với những chuỗi

Cho một chuỗi:

strings="thietkewebhcm.com.vn"Chúng ta hoàn toàn có thể lấy chiều lâu năm của chuỗi bằng phương pháp sử dụng $#strings. Luôn sử dụng vết ngoặc kép quanh các chuỗi, khi chúng ta làm việc với nó để tránh bash diễn giải những ký tự quánh biệt bên trong chúng.

Ngoài ra chúng ta cũng có thể so sánh 2 chuỗi bằng cách sử dụng toán tử = hoặc ==:

"$strings" = "$anotherstrings""$strings" == "$anotherstrings"

Bạn cũng rất có thể kiểm tra sự không giống nhau giữa nhị chuỗi:

"$strings" != "$anotherstrings"

Ví dụ: kết hợp các trở nên chuỗi trong bash. Sản xuất một tập tin có tên string.sh và thêm đoạn mã sau để hoàn toàn có thể kết hợp những biến chuỗi trong bash thực hiện toán tử + hoặc in những biến cùng nhau như sau:

localhost ~># vi string.sh#!/bin/bashstring1="Centos"string2="7"echo "$string1$string2"string3=$string1+$string2string3+=" thietkewebhcm.com.vn"echo $string3Chạy tệp với lệnh bash.

localhost ~># bash string.shCentos7Centos+7 thietkewebhcm.com.vn

3.6. Thực hiện mảng

Mảng là một trong danh sách những mục, được khai báo phía bên trong dấu ngoặc đơn như sau:

a=("di bien" "an uong" "di nui" "xem phim" "the thao")Bạn rất có thể tham chiếu bất kỳ mục như thế nào trong một mảng bởi dấu ngoặc vuông:

a<0>a<1>Bạn có thể nhận được tổng thể mục trong một mảng bởi cú pháp này:

$#a<
>

3.7. áp dụng function

Cũng y hệt như javascript hay ngôn từ lập trình làm sao khác, bạn cũng có thể tạo ra các đoạn mã nhỏ dại để rất có thể sử dụng lại khi đề xuất thiết, bằng cách đặt tên cho chúng và hotline chúng khi cần.

Cú pháp của một hàm như sau:

function name Trong kia name là tên họ cần đặt đến hàm, và là tên gọi để họ gọi khi cần thiết.

Ví dụ 1: tạo một hàm dễ dàng và đơn giản và hotline hàm được hiển thị trong khúc script sau. Chế tạo ra một tập tin mang tên function.sh và thêm đoạn mã sau. Chúng ta cũng có thể gọi ngẫu nhiên chức năng nào bằng tên cơ mà không sử dụng bất kỳ dấu ngoặc làm sao trong tập lệnh bash.

localhost ~># vi function.sh#!/bin/bashfunction test1()echo "Toi rat thich thietkewebhcm.com.vn"test1Chạy tệp với lệnh bash.

localhost ~># bash function.shToi rat thich thietkewebhcm.com.vnVí dụ 2: Bash cần yếu khai báo tham số tại thời điểm khai báo hàm. Nhưng chúng ta cũng có thể sử dụng những tham số vào hàm bằng cách sử dụng vươn lên là khác. Chế tạo ra một tập tin có tên function.sh với thêm đoạn mã sau tính diện tích hình chữ nhật:

localhost ~># vi function_parameter.sh#!/bin/bashTinh_s() area=$(($1*$2))echo "Dien tich la : $area"Tinh_s 30 20Chạy tệp bằng lệnh bash.

localhost ~># bash function_parameter.shDien tich la : 6004. Lời kếtQua bài xích trên, giúp cho họ biết bí quyết sử dụng thiết kế bash shell trên hệ quản lý và điều hành Linux. Qua các ví dụ cơ bạn dạng bên bên trên giúp bọn họ có viết các script phục vụ các bước hằng ngày của họ một cách tiện nghi nhất.

hotlive |

Hi88