Shell là một trong những chương trình thông ngôn lệnh của một hệ điều hành, cung cấp cho tất cả những người dùng tài năng tương tác với hệ điều hành bằng cách gõ từng lệnh ở chế độ dòng lệnh, đồng thời trả lại tác dụng thực hiện nay lệnh lại cho những người sử dụng. Shell cung cấp tập hợp các lệnh đặc biệt quan trọng mà từ bỏ đó rất có thể tạo buộc phải chương trình, khi này được gọi là shell script.Bạn đang xem: cách Chạy file .Sh Là Gì ? phần mềm & cách Mở file Sự khác biệt Giữa Sh với Bash

Bạn đang xem: tệp tin .sh là gì trong đó phổ cập nhất vẫn chính là bash shell (shell mang định cho không hề ít distro khác nhau).

Shell Prompt

Nếu bạn là người sử dụng terminal mỗi ngày thì cái các bạn phải bắt gặp nhiều nhất chính là cái call là “Command prompt”, nó chính là cái này:


*

Phía sau $ chúng ta cũng có thể bắt đầu gõ lệnh

~ $ dateThứ năm, 26 mon mười một năm 2015 17:50:04 ICTChúng ta có thể làm đuợc nhiều thứ vui vẻ với prompt này bằng cách thay biến chuyển PS1, tìm hiểu thêm ở đây: Bash Shell PS1: 10 Examples khổng lồ Make Your Linux Prompt lượt thích Angelina Jolie

Shell types

Có 2 một số loại shell chính:

Bourne shell (mặc định bao gồm dấu nhắc lệnh là $ như sống trên)C shell (dấu đề cập lệnh là %)

Trong Bourne shell còn có các loại không giống nhau như:

Bourne shell (sh)Korn shell (ksh)Bourne Again shell (bash)POSIX shell (sh)

C shell thì có:

C shell (csh)TENEX/TOPS C shell (tcsh)

Shell Script

Về cơ phiên bản shell script là 1 tập hợp những lệnh được thực thi thông suốt nhau, bước đầu 1 shell script thông thường sẽ có ghi chú comment mở đầu bằng # như này:

~ $ bash test.shXin chào, thao!Hôm ni là ngày máy năm, 26 tháng mười 1 năm 2015 18:19:25 ICT

Biến vào shell

Khai báo

variable_name=variable_valueVí dụ:

~ $ THAO="Nguyễn rứa Thạo" ~ $ readonly THAO ~ $ THAO="Muốn cầm Tên Khác"bash: THAO: readonly variable

Xóa giá trị của biến

~ $ a="value" ~ $ echo $avalue ~ $ unset a ~ $ echo $a ~ $

Các một số loại biến

Biến hệ thống: tạo ra và cai quản bởi system, tên là chữ hoa, ví dụ như ~ $ echo $SHELL/bin/bash ~ $ echo $TERMxtermBiến do người dùng định nghĩa: tạo thành và thống trị bởi tín đồ dùng, thương hiệu lung tung, vừa lòng yêu cầu đặt tên của shell.

Mảng

NAME="Zara"NAME="Qadir"NAME="Mahnaz"NAME="Ayan"NAME="Daisy"Nếu dùng ksh shell thì rất có thể khai báo:

set -A array_name value1 value2 ... ValuenNếu dùng bash shell thì khai báo cố này:

array_name=(value1 ... Valuen)Để thực hiện 1 cực hiếm trong mảng:

$array_namehoặc toàn bộ giá trị trong mảng:

$array_name$array_name>Ví dụ:

#!/bin/shNAME="Zara"NAME="Qadir"NAME="Mahnaz"NAME="Ayan"NAME="Daisy"echo "First Index: $NAME"echo "Second Index: $NAME"echo "First Method: $NAME"echo "Second Method: $NAME>"Kết quả:

$./test.shFirst Index: ZaraSecond Index: QadirFirst Method: Zara Qadir Mahnaz Ayan DaisySecond Method: Zara Qadir Mahnaz Ayan Daisy

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

Để triển khai các phép toán số học, nên dùng expr để thực hiện:

#!/bin/shval=`expr 2 + 2`echo "Total value : $val"Kết quả:

Total value : 4Với $a có giá trị 10 với $b có giá trị 20, ta tất cả bảng sau:

Phép tínhÝ nghĩaVí dụ
+Phép cộngexpr $a + $b trả công dụng 30
-Phép trừexpr $a - $b trả hiệu quả -10
*Phép nhânexpr $a * $b trả kết quả 200
/Phép chiaexpr $b / $a trả tác dụng 2
%Phép phân tách lấy dưexpr $b % $a trả hiệu quả 0
=Gán giá trịa=$b quý giá của b vẫn gán đến $a, giờ đồng hồ $a có mức giá trị là 20
==So sánh bằng, trả về true giả dụ 2 vươn lên là cùng giá bán trị trả về false
!=So sánh ko bằng, trả về true giả dụ 2 biến đổi khác giá trị trả về true

Phép toán quan hệ

Vẫn với $a có mức giá trị 10 cùng $b có giá trị 20, ta bao gồm bảng sau:

Phép tínhÝ nghĩaVí dụ
-eqKiểm tra quý hiếm 2 toán tử có đều bằng nhau hay không, bằng thì trả về true trả công dụng không đề xuất là true
-neKiểm tra cực hiếm 2 toán tử có đều bằng nhau hay không, không thì trả về true trả hiệu quả true
-gtKiểm tra quý hiếm của toán tử bên trái có lớn hơn giá trị bên yêu cầu hay không, bao gồm trả về true trả công dụng không buộc phải là true
-ltKiểm tra cực hiếm của toán tử bên trái có nhỏ hơn quý hiếm bên phải hay không, gồm trả về true trả công dụng true
-geKiểm tra quý hiếm của toán tử bên trái có lớn hơn hoặc bởi giá trị bên phải hay không, bao gồm trả về true trả tác dụng không buộc phải là true
-leKiểm tra quý giá của toán tử bên trái có nhỏ dại hơn hoặc bằng giá trị bên đề nghị hay không, có trả về true trả kết quả là true

Cấu trúc rẽ nhánh

Ví dụ:

#!/bin/sha=10b=20if then echo "a is equal khổng lồ b"fiif then echo "a is equal lớn b"elif then echo "a is greater than b"elif then echo "a is less than b"else echo "None of the condition met"fi

Cấu trúc lặp

Vòng lặp while#!/bin/sha=0while bởi echo $a a=`expr $a + 1`doneVòng lặp for#!/bin/shfor var in 0 1 2 3 4 5 6 7 8 9do echo $vardoneVòng lặp until#!/bin/sha=0until vì echo $a a=`expr $a + 1`doneVòng lặp select#!/bin/kshselect DRINK in tea cofee water juice appe all nonedo case $DRINK in tea|cofee|water|all) echo "Go lớn canteen" ;; juice|appe) echo "Available at home" ;; none) break ;; *) echo "ERROR: Invalid selection" ;; esacdoneKết quả của vòng select

$./test.sh1) tea2) cofee3) water4) juice5) appe6) all7) none#? juiceAvailable at home#? none

Hàm

#!/bin/sh# Define your function hereHello () echo "Hello World"# Invoke your functionHelloChạy script

$./test.shHello WorldDùng hàm cùng với parameters:

#!/bin/sh# Define your function hereHello () echo "Hello World $1 $2 $3"# Invoke your functionHello Nguyễn ráng ThạoKết quả:

$./test.shHello World Nguyễn rứa ThạoLấy tác dụng trả về từ hàm

#!/bin/sh# Define your function hereHello () echo "Hello World $1 $2 $3" return 10# Invoke your functionHello Nguyễn rứa Thạo# Capture value returnd by last commandret=$?echo "Return value is $ret"Kết quả:

$./test.shHello World Nguyễn nắm ThạoReturn value is 10

Một số ví dụ

Chạy thử một vài script có hại này cho vui chúng ta nhé