Vỏ con Bash

Vo Con Bash



Đôi khi, nó yêu cầu bạn chạy một hoặc nhiều lệnh hoặc tập lệnh trong nền. Tác vụ này có thể được thực hiện bằng cách viết tất cả các lệnh hoặc tập lệnh vào tệp tập lệnh và thực thi tệp đó bằng dấu và (&) hoặc thực thi các lệnh hoặc tập lệnh vào lớp con từ lớp vỏ hiện tại. Lớp vỏ con có thể được sử dụng để thực thi nhiều lệnh hoặc tập lệnh bằng cách kèm theo dấu $() hoặc dấu gạch ngược (`). Các phương pháp sử dụng lớp con Bash được trình bày trong hướng dẫn này.

Các ví dụ khác nhau của Subshell

Các cách khác nhau để thực thi tập lệnh trong lớp con được hiển thị trong phần hướng dẫn này.

Ví dụ 1: Thực thi Subshell bằng cách sử dụng Trích dẫn đơn và Trích dẫn kép

Tạo một tệp Bash với tập lệnh sau để in ngày và giờ hiện tại. Tiếp theo, biến $strVal được in bằng cách đặt tập lệnh khung con bên trong dấu ngoặc đơn và dấu ngoặc kép.







#!/bin/bash

#In lệnh `date` trong subshell

tiếng vang 'Hôm nay là `ngày` '

#Xác định một biến chuỗi

strVal = 'Vỏ con Bash'

#In biến trong subshell sử dụng dấu nháy đơn

tiếng vang 'Đầu ra của dấu nháy đơn:' '$(echo $strVal)'

#In biến trong subshell sử dụng dấu ngoặc kép

tiếng vang 'Đầu ra của dấu ngoặc kép:' ' $(echo $strVal) '

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Tập lệnh subshell được in dưới dạng một chuỗi khi nó được đặt trong dấu nháy đơn. Tập lệnh subshell được thực thi khi nó được đặt trong dấu ngoặc kép:





Ví dụ 2: Tìm kiếm tất cả các tệp của tiện ích mở rộng cụ thể bằng Subshell

Tạo tệp Bash với tập lệnh sau lấy phần mở rộng tệp làm đầu vào từ người dùng. Tiếp theo, lệnh “ls” được thực thi trong lớp con để tìm kiếm tất cả các tệp của tiện ích mở rộng cụ thể đó.





#!/bin/bash

tiếng vang -N 'Nhập tên của phần mở rộng tập tin:'

# Lấy tên phần mở rộng tệp sẽ được tìm kiếm

đọc mở rộng

#Kiểm tra giá trị đầu vào

nếu như [ [ $ext == '' ] ] ; sau đó

#Thông báo lỗi in

tiếng vang 'Không có phần mở rộng nào được đưa ra.'

khác

tiếng vang 'Tên tập tin với $ext sự mở rộng:'

#In tất cả các tên tệp có phần mở rộng đã cho

tiếng vang ' $( tiếng vang `ls *.$ext` ) '

Đầu ra sau xuất hiện sau khi thực thi tập lệnh với đầu vào “txt”. Theo đầu ra, ba tệp văn bản tồn tại ở vị trí hiện tại:



Đầu ra sau xuất hiện sau khi thực thi tập lệnh với giá trị trống:

Ví dụ 3: Thực thi biểu thức số học trong Subshell

Tạo một tệp Bash với tập lệnh sau trong đó biến cùng tên được sử dụng trong lớp vỏ chính và lớp vỏ con. Phép toán số học được định nghĩa trong lớp vỏ chính và lớp vỏ con.

#!/bin/bash

#Xác định biến hệ vỏ cha

con số = 10

#In kết quả dựa trên biến của shell cha

( ( kết quả = số $ + 5 ) )

tiếng vang 'Tổng của số $ +5= kết quả $ '

#Tạo một biến lớp vỏ con có cùng tên với lớp vỏ mẹ

( con số = hai mươi ; ( ( kết quả = số $ + 10 ) ) ; tiếng vang 'Tổng của số $ +5= kết quả $ ' )

#In lại kết quả dựa trên biến của shell cha

tiếng vang 'Tổng của số $ +5= kết quả $ '

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Đầu ra đầu tiên và cuối cùng hiển thị kết quả của trình bao chính. Đầu ra thứ hai hiển thị kết quả của subshell. Biến của vỏ chính không bị sửa đổi bởi biến của vỏ con:

Ví dụ 4: Thực thi nhiều lệnh trong Subshell

Tạo một tệp Bash với tập lệnh sau gửi đầu ra của lệnh “echo” thành lệnh “sed” để thay thế giá trị chuỗi phù hợp bằng một chuỗi khác. Đầu ra của lệnh “echo” là “JavaScript”. Vì vậy, giá trị này được so sánh với “Java” và “JavaScript”. Nếu tìm thấy kết quả trùng khớp, các chuỗi phù hợp sẽ được thay thế bằng chuỗi 'Loại'.

#!/bin/bash

#Xác định một giá trị chuỗi

strVal = 'JavaScript'

#In giá trị chuỗi ban đầu

tiếng vang 'Chuỗi giá trị: $strVal '

#In giá trị subshell

tiếng vang -N 'Giá trị vỏ con:'

tiếng vang ' $(echo $strVal | sed 's|Java|Kiểu JavaScript|') '

Đầu ra sau xuất hiện sau khi thực thi tập lệnh. Theo đầu ra, chuỗi “Java” được thay thế bằng chuỗi “Loại”. Đầu ra của subshell là “JavaScript TypeScript”:


Phần kết luận

Một hoặc nhiều lệnh hoặc tập lệnh có thể được thực thi bằng cách sử dụng lớp vỏ con mà không ảnh hưởng đến lớp vỏ chính. Mục đích của việc sử dụng subshell được giải thích trong hướng dẫn này bằng nhiều ví dụ. Các loại nhiệm vụ khác nhau như tìm kiếm tệp, tính tổng các số, thay thế các chuỗi, v.v. được thực hiện bởi subshell trong các ví dụ đã cho. Khái niệm sử dụng subshell được thể hiện chính xác và những người dùng Bash mới bây giờ sẽ có thể sử dụng subshell sau khi đọc hướng dẫn này.