30 bash script Câu hỏi phỏng vấn và câu trả lời

30 Bash Script Interview Questions



Bash scripting là một ngôn ngữ lập trình rất hữu ích và mạnh mẽ, chủ yếu được sử dụng để thực hiện bất kỳ tác vụ thủ công nào được tự động hóa. Một người tìm việc muốn trở thành một người kiểm tra tự động hóa hoặc lập trình viên bash phải đối mặt với một số câu hỏi phổ biến trong cuộc phỏng vấn. Các loại kịch bản shell khác nhau tồn tại trong Linux. Một trong những script shell phổ biến và được sử dụng nhiều nhất là Bourne Again Shell hoặc Bash. 30 câu hỏi phỏng vấn quan trọng và câu trả lời về ngôn ngữ kịch bản bash được mô tả trong bài viết này để chuẩn bị cho công việc.

# 01. Tập lệnh bash là gì?

Tập lệnh bash là một ngôn ngữ lập trình shell. Nói chung, chúng tôi chạy nhiều loại lệnh shell từ thiết bị đầu cuối bằng cách gõ từng lệnh riêng biệt đòi hỏi thời gian và nỗ lực. Nếu chúng ta cần chạy lại các lệnh tương tự thì chúng ta phải thực hiện lại tất cả các lệnh từ thiết bị đầu cuối. Nhưng bằng cách sử dụng tập lệnh bash, chúng ta có thể lưu trữ nhiều câu lệnh shell trong một tệp bash duy nhất và thực thi tệp bất kỳ lúc nào bằng một lệnh duy nhất. Nhiều tác vụ liên quan đến quản trị hệ thống, cài đặt chương trình, sao lưu đĩa, đánh giá nhật ký, v.v. có thể được thực hiện bằng cách sử dụng tập lệnh bash thích hợp.







# 02. Lợi ích của việc sử dụng tập lệnh bash là gì?

Tập lệnh Bash có nhiều ưu điểm được mô tả dưới đây:



  • Nó rất dễ sử dụng và học hỏi.
  • Nhiều tác vụ thủ công cần chạy thường xuyên có thể được thực hiện tự động bằng cách viết tập lệnh bash.
  • Chuỗi nhiều lệnh shell có thể được thực hiện bằng một lệnh duy nhất.
  • Tập lệnh Bash được viết trong một hệ điều hành Linux có thể dễ dàng thực thi trong hệ điều hành Linux khác. Vì vậy, nó là di động.
  • Gỡ lỗi trong bash dễ dàng hơn các ngôn ngữ lập trình khác.
  • Cú pháp dòng lệnh và các lệnh được sử dụng trong thiết bị đầu cuối tương tự như các lệnh và cú pháp được sử dụng trong tập lệnh bash.
  • Tập lệnh Bash có thể được sử dụng để liên kết với các tệp tập lệnh khác.

# 03. Đề cập đến nhược điểm của tập lệnh bash

Một số nhược điểm của tập lệnh bash được đề cập dưới đây:



  • Nó hoạt động chậm hơn các ngôn ngữ khác.
  • Tập lệnh không đúng có thể làm hỏng toàn bộ quy trình và tạo ra một lỗi phức tạp.
  • Nó không thích hợp để phát triển một ứng dụng lớn và phức tạp.
  • Nó chứa ít cấu trúc dữ liệu hơn so với các ngôn ngữ lập trình tiêu chuẩn khác.

# 04. Những loại biến nào được sử dụng trong bash?

Hai loại biến có thể được sử dụng trong tập lệnh bash. Đó là:

Các biến hệ thống
Các biến được xác định trước và được duy trì bởi hệ điều hành Linux được gọi là các biến hệ thống. Loại biến này luôn được sử dụng bởi một ký tự viết hoa. Giá trị mặc định của các biến này có thể được thay đổi dựa trên các yêu cầu.

`set`,` env` và ` printenv Lệnh `có thể được sử dụng để in danh sách các biến hệ thống.

Thí dụ:





#! / bin / bash
# Biến Hệ thống In

Tên shell #Print Bash
quăng đi $ BASH

# Bản in Bash shell
quăng đi $ BASH_VERSION

# In Tên thư mục chính
quăng đi $ HOME

Biến do người dùng xác định

Các biến được tạo và duy trì bởi người dùng được gọi là các biến do người dùng xác định. Chúng còn được gọi là biến cục bộ. Các loại biến này có thể được khai báo bằng cách sử dụng chữ thường hoặc chữ hoa hoặc cả chữ hoa và chữ thường. Nhưng tốt hơn là nên tránh sử dụng tất cả các chữ cái viết hoa để phân biệt các biến với các biến hệ thống.
Thí dụ:

#! / bin / bash

trên một=100
quăng đi $ num

# 05. Cách khai báo và xóa biến trong bash?

Biến có thể được khai báo trong bash theo kiểu dữ liệu hoặc không có kiểu dữ liệu. Nếu bất kỳ biến bash nào được khai báo mà không có tuyên bố thì biến sẽ được coi là một chuỗi. Biến bash được khai báo bằng tuyên bố lệnh xác định kiểu dữ liệu của biến tại khai báo thời gian.



-NS , -i, -a, -A, -l, -u, -t-NS các tùy chọn có thể được sử dụng với tuyên bố lệnh khai báo một biến với các kiểu dữ liệu khác nhau.

Thí dụ:

#! / bin / bash

# Biến #Declare không có bất kỳ kiểu nào
trên một=10

# Giá trị sẽ được kết hợp nhưng không được thêm vào
kết quả=$ num+hai mươi
quăng đi $ kết quả

# Biến #Declare với kiểu số nguyên
tuyên bố -tôi trên một=10

# Giá trị sẽ được thêm vào
tuyên bố -tôi kết quả= num +hai mươi
quăng đi $ kết quả

không đặt lệnh được sử dụng để loại bỏ bất kỳ biến bash nào. Biến sẽ không thể truy cập được hoặc không xác định sau khi sử dụng không đặt chỉ huy.

Thí dụ:

#! / bin / bash

P='Gợi ý Linux'
quăng đi $ str
không đặt $ str
quăng đi $ str

# 06. Làm thế nào để thêm nhận xét trong một tập lệnh bash?

Nhận xét một dòng và nhiều dòng có thể được sử dụng trong tập lệnh bash. ‘ # Ký hiệu ‘được sử dụng cho nhận xét một dòng. '<<’ ký hiệu có dấu phân cách và ‘:’ với đơn (‘) được sử dụng để thêm nhận xét nhiều dòng.

Thí dụ:

#! / bin / bash
# In văn bản [Nhận xét một dòng]
quăng đi 'Lập trình Bash'
< Tính tổng
Của hai số [bình luận nhiều dòng]
thêm bình luận

trên một=25+35
quăng đi $ num
:'
Kết hợp hai
Dữ liệu chuỗi [nhận xét nhiều dòng]
'

Dây='Xin chào'
quăng đi $ string' Thế giới'

# 07. Làm thế nào bạn có thể kết hợp các chuỗi trong một tập lệnh bash?

Các giá trị chuỗi có thể được kết hợp trong bash theo nhiều cách khác nhau. Thông thường, các giá trị chuỗi được kết hợp bằng cách đặt cùng nhau nhưng có những cách khác trong bash để kết hợp dữ liệu chuỗi.

Thí dụ:

#! / bin / bash
# Khởi tạo các biến
str1='PHP'
str2='Bash'
str3='Perl'

# In chuỗi cùng với khoảng trắng
quăng đi $ str1 $ str2 $ str3

# Kết hợp tất cả các biến và lưu trữ trong một biến khác
P='$ str1,$ str2$ str3'

# Kết hợp dữ liệu chuỗi khác với giá trị hiện có của chuỗi
str + ='là những ngôn ngữ viết kịch bản'

# In chuỗi
quăng đi $ str

# 08. Những lệnh nào được sử dụng để in đầu ra trong bash?

`tiếng vọng``printf` các lệnh có thể được sử dụng để in đầu ra ở dạng bash. `tiếng vang Lệnh `được sử dụng để in đầu ra đơn giản và `printf` được sử dụng để in đầu ra được định dạng.

Thí dụ:

#! / bin / bash

# In văn bản
quăng đi 'Chào mừng đến với LinuxHint'
Địa điểm='linuxhint.com'
# In văn bản đã định dạng
printf '% s là một trang blog phổ biến ' $ site

# 09. Làm thế nào để lấy đầu vào từ thiết bị đầu cuối trong bash?

`đọc` lệnh được sử dụng trong một tập lệnh bash để lấy đầu vào từ thiết bị đầu cuối.

Thí dụ:

#! / bin / bash
#Print tin nhắn
quăng đi 'Điền tên của bạn'
# Lấy đầu vào từ người dùng
đọcTên
# In giá trị của $ name với chuỗi khác
quăng đi 'Tên bạn là$ name'

# 10. Làm thế nào để sử dụng các đối số dòng lệnh trong bash?

Đối số dòng lệnh được đọc bởi $ 1, $ 2, $ 3… $ n biến. Giá trị đối số dòng lệnh được cung cấp trong thiết bị đầu cuối khi thực thi tập lệnh bash. $ 1 được sử dụng để đọc đối số đầu tiên, $ 2 được sử dụng để đọc đối số thứ hai, v.v.

Thí dụ:

#! / bin / bash
# Kiểm tra bất kỳ đối số nào được cung cấp hay không
nếu như [[ $ # -eq 0 ]];sau đó
quăng đi 'Không có lập luận nào được đưa ra.'
lối ra 0
thì là ở
# Lưu trữ giá trị đối số đầu tiên
màu sắc=$ 1
# In đối số với chuỗi khác
printf 'Màu yêu thích của bạn là% s ' $ màu

# 11. Bash có phải là một ngôn ngữ được đánh máy yếu không? Tại sao?

Đúng, bash được coi là một ngôn ngữ được đánh máy yếu hoặc lỏng lẻo vì nó không yêu cầu khai báo kiểu dữ liệu tại thời điểm khai báo biến. Tất cả các biến bash được coi là một chuỗi theo mặc định và kiểu của biến sẽ được đặt dựa trên giá trị hiện tại. Các biến bash với các kiểu dữ liệu có thể được xác định bằng cách sử dụng tuyên bố lệnh với một tùy chọn cụ thể. Nhưng các tùy chọn để xác định loại dữ liệu bị hạn chế và không hỗ trợ tất cả các loại dữ liệu. Ví dụ, trôi nổi loại dữ liệu không thể được khai báo bằng cách sử dụng tuyên bố chỉ huy.

Thí dụ:

#! / bin / bash

# Kiểu dữ liệu của $ myVar theo mặc định là chuỗi
myVar=29

# In biến
quăng đi $ myVar

# Khai báo biến số nguyên $ number với giá trị 67
tuyên bố -tôi con số=67

# In biến
quăng đi $ số

# Gán dữ liệu chuỗi vào biến số. Dòng sau sẽ tạo
# lỗi cú pháp và giá trị của $ number sẽ không thay đổi
con số='Tôi thích bash'
quăng đi $ số

# 12. Làm thế nào để đọc từ hoặc cột thứ hai từ mỗi dòng của tệp?

Từ hoặc cột thứ hai của tệp có thể được đọc trong tập lệnh bash bằng cách sử dụng các lệnh bash khác nhau một cách dễ dàng, chẳng hạn như `awk`,` sed`, v.v. Ở đây, việc sử dụng `awk` được hiển thị trong ví dụ sau.
Thí dụ: Giả sử, tập tin course.txt chứa nội dung sau và chúng ta chỉ in từ thứ hai của mỗi dòng của tập tin này.

Lập trình Java CSE201
Cấu trúc dữ liệu CSE303
Lập trình Unix CSE408#! / bin / bash
# Tập lệnh sau sẽ in từ thứ hai của mỗi dòng từ tệp course.txt.
# đầu ra của lệnh cat sẽ chuyển đến lệnh awk sẽ đọc từ thứ hai
# của mỗi dòng.
quăng đi ``con mèocourse.txt| awk '{in $ 2}'``

# 13. Làm thế nào để khai báo và truy cập một biến mảng trong bash?

Cả mảng số và mảng kết hợp đều được hỗ trợ bởi một tập lệnh bash. Một biến mảng có thể được khai báo có và không có lệnh khai báo. -đến tùy chọn được sử dụng với lệnh khai báo để xác định một mảng số và -ĐẾN tùy chọn được sử dụng với câu lệnh tuyên bố để xác định một mảng kết hợp trong bash. Không có lệnh khai báo, mảng số chỉ có thể được xác định trong bash.

Thí dụ:

#! / bin / bash

# Khai báo một mảng số đơn giản
arr1=(CodeIgniter Laravel ReactJS)

# In giá trị phần tử đầu tiên của $ arr1
quăng đi $ {arr1 [0] {

# Khai báo mảng số bằng lệnh khai báo
tuyên bố -đến arr2=(HTML CSS JavaScript)

# In giá trị phần tử thứ hai của $ arr2
quăng đi $ {arr2 [1]}

# Khai báo một mảng kết hợp bằng cách sử dụng câu lệnh tuyên bố
tuyên bố -ĐẾN arr3=( [khuôn khổ]= Laravel[CMS]= Wordpress[Thư viện]= JQuery)

# In giá trị phần tử thứ ba của $ arr3
quăng đi $ {arr3 [Thư viện]}

Tất cả các phần tử của một mảng có thể được truy cập bằng cách sử dụng bất kỳ vòng lặp hoặc ký hiệu ‘*’ nào làm chỉ số mảng.

# 14. Làm thế nào có thể sử dụng câu lệnh điều kiện trong bash?

Câu lệnh điều kiện phổ biến nhất trong hầu hết các ngôn ngữ lập trình là if-elseif-else tuyên bố. Cú pháp của if-elseif-else câu lệnh trong bash hơi khác một chút so với các ngôn ngữ lập trình khác. 'Nếu như' câu lệnh có thể được khai báo theo hai cách trong một tập lệnh bash và mọi loại 'nếu như' khối phải được đóng bằng 'thì là ở' . 'nếu như' câu lệnh có thể được định nghĩa bằng dấu ngoặc thứ ba hoặc dấu ngoặc thứ nhất giống như các ngôn ngữ lập trình khác.

Cú pháp:
ĐẾN.

nếu như [tình trạng];
sau đó
các câu lệnh
thì là ở

NS.

nếu như [tình trạng];sau đó
các câu lệnh1
khác
tuyên bố2
thì là ở

NS.

nếu như [tình trạng];sau đó
tuyên bố1
elif[tình trạng];sau đó
tuyên bố2
….
khác
tuyên bố n
thì là ở

Thí dụ:

#! / bin / bash

# Gán giá trị cho $ n
n=30
# Kiểm tra $ n có lớn hơn 100 hay không
nếu như [ $ n -gt 100 ];sau đó
quăng đi '$ nnhỏ hơn 100 '
# Kiểm tra id $ n lớn hơn 50 hay không
elif [ $ n -gt năm mươi ];sau đó
quăng đi '$ ndưới 50 '
khác
quăng đi '$ ndưới 50 '
thì là ở

# 15. Làm thế nào để so sánh các giá trị trong bash?

Sáu loại toán tử so sánh có thể được sử dụng trong bash để so sánh các giá trị. Có hai cách để sử dụng các toán tử này trong bash tùy thuộc vào kiểu dữ liệu. Những điều này được đề cập dưới đây.

So sánh chuỗi Integer Comarison Sự miêu tả
== -eq Nó được sử dụng để kiểm tra sự bình đẳng
! = -sinh ra Nó được sử dụng để kiểm tra sự bất bình đẳng
< -lt Nó được sử dụng để kiểm tra giá trị đầu tiên có nhỏ hơn giá trị thứ hai hay không
> -gt Nó được sử dụng để kiểm tra giá trị đầu tiên có lớn hơn giá trị thứ hai hay không
<= -NS Nó được sử dụng để kiểm tra giá trị đầu tiên nhỏ hơn hoặc bằng giá trị thứ hai hay không
> = -đưa cho Nó được sử dụng để kiểm tra giá trị đầu tiên lớn hơn hoặc bằng giá trị thứ hai hay không

Thí dụ:

#! / bin / bash
# Khởi tạo $ n
n=130
hoặc='thậm chí'
# Kiểm tra $ n lớn hơn hoặc bằng 100 hoặc không sử dụng ‘–ge’.
nếu như [ $ n -đưa cho 100 ];sau đó
quăng đi '$ nlớn hơn hoặc bằng 100 '
khác
quăng đi '$ nnhỏ hơn 100 '
thì là ở
# Kiểm tra $ n là chẵn hay lẻ bằng toán tử ‘==’
nếu như (( $ o=='thậm chí' ));sau đó
quăng đi 'Số chẵn'
khác
quăng đi 'Con số là số lẻ'
thì là ở

# 16. Câu lệnh điều kiện nào có thể được sử dụng thay thế cho câu lệnh if-elseif-else trong bash?

'trường hợp' câu lệnh có thể được sử dụng như một thay thế tp if-elseif-if tuyên bố. Cú pháp cho 'trường hợp' câu lệnh trong tập lệnh bash khác với trường hợp chuyển mạch câu lệnh của các ngôn ngữ lập trình khác. 'trường hợp' khối được đóng bởi ‘Esac’ tuyên bố trong bash. Không ' nghỉ Câu lệnh ‘được sử dụng bên trong‘ trường hợp ‘Khối để kết thúc từ khối.

Cú pháp:

trường hợp trong
Phù hợp với mẫu1)lệnh;;
Phù hợp với mẫu2)lệnh;;
……
Phù hợp với mẫu n)lệnh;;
esac

Thí dụ:

#! / bin / bash
# Khởi tạo biến $ ticket
=101
# So sánh giá trị của $ ticket với 23, 101 và 503
trường hợp vé $ trong
2. 3)
# In tin nhắn nếu giá trị là 23
quăng đi 'Bạn đã được giải nhất';;
101)
# In tin nhắn nếu giá trị là 101
quăng đi 'Bạn đã được giải nhì';;
503)
# In tin nhắn nếu giá trị là 503
quăng đi 'Bạn đã nhận được giải ba';;
*)
# In tin nhắn nếu giá trị không khớp với 23, 101 và 503
quăng đi 'Xin lỗi, cố gắng cho lần sau'
lối ra 0;;
esac

# 17. Những loại vòng lặp khác nhau có thể được sử dụng trong bash?

Ba loại vòng lặp được hỗ trợ bởi một tập lệnh bash. đó là trong khi, chocho đến khi các vòng lặp. Các vòng lặp trong bash kiểm tra điều kiện khi bắt đầu vòng lặp. Trong khi vòng lặp hoạt động cho đến khi điều kiện vẫn đúng và cho đến khi vòng lặp hoạt động cho đến khi điều kiện vẫn là sai. Có hai cách để sử dụng vòng. Một là chung vòng lặp chứa ba phần và một phần khác là tại vòng. Việc sử dụng ba vòng lặp này được trình bày trong ví dụ sau.

Thí dụ:

#! / bin / bash
# Khởi tạo $ n
n=5
# Tính bình phương của 5-1 bằng vòng lặp while
trong khi [ $ n -gt 0 ]
làm
sqr= $((n*n))
quăng đi 'Hình vuông của$ n$ sqr'
((n--))
xong

# Tính bình phương của 5-1 bằng vòng lặp for
(( tôi=5; tôi>0; tôi--))
làm
sqr= $((tôi*tôi))
quăng đi 'Hình vuông của$ i$ sqr'
xong

# Khởi tạo $ x
NS=5

# Tính bình phương của 5-1 bằng vòng lặp cho đến khi
cho đến khi [ $ x -NS 0 ]
làm
sqr= $((NS*NS))
quăng đi 'Hình vuông của$ x$ sqr'
((NS--))
xong

# 18. Làm thế nào các chương trình con có thể được khai báo và gọi trong bash?

Trong bash một hàm hoặc thủ tục được gọi là chương trình con. Việc khai báo và gọi chương trình con trong bash khác với các ngôn ngữ khác. Không có đối số nào có thể được khai báo trong các chương trình con không giống như các ngôn ngữ lập trình tiêu chuẩn khác. Nhưng các biến cục bộ có thể được xác định trong chương trình con bằng cách sử dụng 'địa phương' từ khóa.

Thí dụ:

#! / bin / bash
# Khởi tạo biến $ x và $ y là biến toàn cục
NS=10
=35

# Khai báo hàm
myFunc() {
# Khai báo biến cục bộ $ x
địa phương NS=mười lăm

# Gán lại biến toàn cục $ y
=25

# Tính tổng của $ x và $ y
Với= $((x + y))

# In tổng của một biến cục bộ, $ x và biến toàn cục, $ y
quăng đi 'Tổng của$ x$ ytương đương với$ z'
}

# Gọi hàm
myFunc

# In tổng các biến toàn cục, $ x và $ y
quăng đi 'Tổng của$ x$ ytương đương với$ z'

# 19. Làm thế nào để cắt và in một số phần của dữ liệu chuỗi trong bash?

Bash không có chức năng tích hợp sẵn như các ngôn ngữ khác để cắt một số phần dữ liệu chuỗi. Nhưng sử dụng mở rộng tham số, bất kỳ giá trị chuỗi nào cũng có thể bị cắt trong bash. Ba phần có thể được xác định trong phần mở rộng tham số bằng cách phân tách bằng dấu hai chấm để cắt bất kỳ phần nào của dữ liệu chuỗi. Ở đây, hai phần đầu tiên là bắt buộc và phần cuối cùng là tùy chọn. Phần đầu tiên chứa biến chuỗi chính sẽ được sử dụng để cắt, phần thứ hai là vị trí bắt đầu từ nơi chuỗi sẽ được cắt và phần thứ ba là chiều dài của chuỗi cắt. Vị trí bắt đầu phải được đếm từ 0 và chiều dài phải được đếm từ 1 của chuỗi chính để lấy giá trị cắt.

Thí dụ:

#! / bin / bash
# Khởi tạo một giá trị chuỗi thành $ string
dây='Ngôn ngữ kịch bản Python'
# Cắt giá trị chuỗi từ vị trí 7 đến cuối chuỗi
quăng đi $ {string: 7}
# Cắt giá trị chuỗi gồm 9 ký tự từ vị trí 7
quăng đi $ {string: 7: 9}
# Cắt giá trị chuỗi từ 17 xuống 20
quăng đi $ {string: 17: -4}

# 20. Nêu một số cách thực hiện các phép tính số học trong bash?

Các phép toán số học có thể được thực hiện theo nhiều cách trong bash. ‘Let’, ‘expr’, ‘bc’dấu ngoặc kép là những cách phổ biến nhất để thực hiện các phép tính số học trong bash. Việc sử dụng các lệnh này được trình bày trong ví dụ sau.

Thí dụ:

#! / bin / bash
# Tính phép trừ bằng cách sử dụng mở rộng tham số và expr
var1= $( expr 120-100 )
# in kết quả
quăng đi $ var1
# Tính phép cộng bằng lệnh let
cho phép var2=200+300
# In rsult
quăng đi $ var2
# Tính và in giá trị của phép chia bằng cách sử dụng ‘bc’ để nhận kết quả
# với giá trị phân số
quăng đi 'scale = 2; 44/7 ' | bc
# Tính giá trị của phép nhân bằng dấu ngoặc kép
var3= $(( 5*3 ))
# In kết quả
quăng đi $ var3

# 21. Làm thế nào để kiểm tra một thư mục tồn tại hay không bằng cách sử dụng bash?

Bash có nhiều lệnh kiểm tra để kiểm tra xem một tệp hoặc thư mục có tồn tại hay không và loại tệp. '-NS' tùy chọn được sử dụng với đường dẫn thư mục như một câu lệnh điều kiện để kiểm tra xem thư mục có tồn tại hay không trong bash. Nếu thư mục tồn tại, thì nó sẽ trả về true nếu không sẽ trả về false.

Thí dụ:

#! / bin / bash
# Gán thư mục với đường dẫn trong biến, $ path
con đường='/ home / ubuntu / temp'
# Kiểm tra thư mục có tồn tại hay không
nếu như [ -NS '$ đường dẫn' ];sau đó
# In tin nhắn nếu thư mục tồn tại
quăng đi 'Thư mục tồn tại'
khác
# In tin nhắn nếu thư mục không tồn tại
quăng đi 'Thư mục không tồn tại'
thì là ở

# 22. Làm cách nào để kết thúc một tập lệnh bash mà không thực hiện tất cả các câu lệnh?

Sử dụng 'lối ra' lệnh, một tập lệnh bash có thể được kết thúc mà không cần thực hiện tất cả các câu lệnh. Tập lệnh sau sẽ kiểm tra xem một tệp cụ thể có tồn tại hay không. Nếu tệp tồn tại, thì nó sẽ in ra tổng số ký tự của tệp và nếu tệp không tồn tại thì nó sẽ kết thúc tập lệnh bằng cách hiển thị một thông báo.

Thí dụ:

#! / bin / bash

# Khởi tạo tên tệp thành biến, $ filename
tên tập tin='course.txt'

# Kiểm tra tệp có tồn tại hay không bằng cách sử dụng tùy chọn -f
nếu như [ -NS '$ filename' ];sau đó
# In thông báo nếu tệp tồn tại
quăng đi '$ filenametồn tại '
khác
# In thông báo nếu tệp không tồn tại
quăng đi '$ filenamekhông tồn tại'
# Chấm dứt tập lệnh
lối ra 1
thì là ở

# Đếm độ dài của tệp nếu tệp tồn tại
chiều dài=``wc -NS $ filename``

# In độ dài của tệp
quăng đi 'Tổng số ký tự -$ chiều dài'

# 23. Công dụng của câu lệnh break và continue trong bash là gì?

nghỉ câu lệnh được sử dụng để kết thúc từ một vòng lặp mà không hoàn thành lặp lại đầy đủ dựa trên một điều kiện và tiếp tục câu lệnh được sử dụng trong một vòng lặp để bỏ qua một số câu lệnh dựa trên một điều kiện. Việc sử dụng nghỉtiếp tục các câu lệnh được giải thích trong ví dụ sau.

Thí dụ:

#! / bin / bash
# Khởi tạo biến $ i thành 0 để bắt đầu vòng lặp
tôi=0
# vòng lặp sẽ lặp lại fot 10 lần
trong khi [ $ i -NS 10 ]
làm
# Tăng giá trị $ i lên 1
((i ++))
# Nếu giá trị của $ i bằng 8 thì kết thúc vòng lặp bằng cách sử dụng câu lệnh 'break'
nếu như [ $ i -eq số 8 ];sau đó
nghỉ;
thì là ở
# Nếu giá trị của $ i lớn hơn 6 thì bỏ qua câu lệnh cuối cùng của vòng lặp
# bằng cách sử dụng câu lệnh continue
nếu như [ $ i -đưa cho 6 ];sau đó
tiếp tục;
thì là ở
quăng đi 'giá trị hiện tại của i =$ i'
xong

# In giá trị của $ i sau khi kết thúc từ vòng lặp
quăng đi 'Bây giờ giá trị của i =$ i'

# 24. Làm thế nào để thực thi một tệp bash?

Các tệp bash có thể thực thi có thể được tạo bằng cách sử dụng ‘Chmod’ chỉ huy. Quyền thực thi có thể được đặt bằng cách sử dụng '+ X' trong chmod lệnh với tên tệp kịch bản. Tệp bash có thể được thực thi mà không có ‘Bash’ lệnh sau khi thiết lập bit thực thi cho tệp đó.

Thí dụ:

# Đặt bit thực thi
$chmod+ x filename.sh

# Chạy tệp thực thi
$./filename.sh

# 25. Đề cập đến một số tùy chọn được sử dụng để kiểm tra tệp

Nhiều tùy chọn có sẵn trong tệp bash để kiểm tra. Một số tùy chọn được đề cập dưới đây.

Lựa chọn Sự miêu tả
-NS Nó được sử dụng để kiểm tra sự tồn tại của tệp và nó là một tệp thông thường.
-Và Nó chỉ được sử dụng để kiểm tra sự tồn tại của tệp.
-NS Nó được sử dụng để kiểm tra sự tồn tại của tệp và nó có quyền đọc.
-trong Nó được sử dụng để kiểm tra sự tồn tại của tệp và nó phải có quyền ghi.
-NS Nó được sử dụng để kiểm tra sự tồn tại của tệp và nó có quyền thực thi.
-NS Nó được sử dụng để kiểm tra sự tồn tại của thư mục.
-NS Nó được sử dụng để kiểm tra sự tồn tại của tệp và Nó là một liên kết tượng trưng.
-NS Nó được sử dụng để kiểm tra sự tồn tại của tệp và Nó là một ổ cắm.
-NS Nó được sử dụng để kiểm tra tệp là thiết bị khối.
-NS Nó được sử dụng để kiểm tra kích thước tệp không phải là 0.
-ví dụ Nó được sử dụng để kiểm tra nội dung của tệp đầu tiên mới hơn tệp thứ hai. Ví dụ: file1 -nt file2 cho biết rằng file1 mới hơn file2.
-tốt Nó được sử dụng để kiểm tra nội dung của tệp đầu tiên cũ hơn tệp thứ hai. Ví dụ: tệp1 -ot tệp2 cho biết tệp1 cũ hơn tệp2.
-ef Nó được sử dụng để kiểm tra xem hai liên kết cứng tham chiếu đến cùng một tệp. Ví dụ, flink1 -ef flink2 chỉ ra rằng flink1 và flink2 là các liên kết cứng và cả hai đều tham chiếu đến cùng một tệp.

# 26. ‘Bc’ có nghĩa là gì và làm cách nào để có thể sử dụng lệnh này trong bash?

Dạng đầy đủ của 'bc' là Máy tính Bash để thực hiện các phép tính số học chính xác hơn trong bash. Phần phân số bị bỏ qua nếu bất kỳ phép toán số học nào được thực hiện trong bash bằng cách sử dụng ‘Expr’ chỉ huy. Phần phân số cũng có thể được làm tròn bằng cách sử dụng tỉ lệ giá trị với ‘Bc’ chỉ huy.

Thí dụ:

#! / bin / bash
# Tính phép chia không có giá trị phân số
quăng đi '39/7 ' | bc

# Tính phép chia với giá trị phân số đầy đủ
quăng đi '39/7 ' | bc -NS

# Tính phép chia có ba chữ số sau dấu thập phân
quăng đi 'scale = 3; 39/7 ' | bc

# 27. Làm cách nào bạn có thể in một dòng cụ thể của tệp trong bash?

Có nhiều cách để in một dòng cụ thể trong bash. Như thế nào 'awk', 'sed''đuôi' lệnh có thể được sử dụng để in một dòng cụ thể của tệp trong bash được hiển thị trong ví dụ sau.

Thí dụ:

#! / bin / bash

# Đọc và lưu trữ dòng đầu tiên từ tệp bằng cách sử dụng lệnh `awk` với biến NR
dòng 1=``awk '{if (NR == 1) in $ 0}'course.txt``
# In dòng
quăng đi $ line1

# Đọc dòng thứ hai từ tệp bằng cách sử dụng lệnh `sed` với tùy chọn -n
dòng 2=``quyến rũ -n2p course.txt``
# In dòng
quăng đi $ line2

# Đọc dòng cuối cùng của tệp bằng cách sử dụng lệnh `tail` với tùy chọn -n
line3=``đuôi -n 1course.txt``
# In tệp
quăng đi $ line3

# 28. IFS là gì?

IFS là một biến shell đặc biệt. Hình thức đầy đủ của IFS là Dấu phân tách trường nội bộ,
nó hoạt động như dấu phân cách để tách từ khỏi dòng văn bản. Nó chủ yếu được sử dụng để tách chuỗi, đọc lệnh, thay thế văn bản, v.v.

Thí dụ:

#! / bin / bash
# Khai báo ':' làm dấu phân cách để tách văn bản
IFS=':'
# Gán dữ liệu văn bản với ':' thành $ text
chữ='Đỏ lục lam'
Vòng lặp # for sẽ đọc từng từ sau khi tách văn bản dựa trên IFS
giờtrong $ text;làm
# In từ
quăng đi $ giờ
xong

# 29. Làm thế nào để tìm ra độ dài của dữ liệu chuỗi?

‘Expr’, ‘wc’‘Awk’ các lệnh có thể được sử dụng để tìm ra độ dài của dữ liệu chuỗi trong bash. ‘Expr’‘Awk’ lệnh sử dụng chiều dài Lựa chọn, ‘Wc’ lệnh sử dụng '-NS' tùy chọn để đếm độ dài của chuỗi.

Thí dụ:

Việc sử dụng các lệnh trên được hiển thị trong đoạn mã sau.

#! / bin / bash
# Đếm độ dài bằng tùy chọn độ dài `expr`
quăng đi ``exprchiều dài'Tôi thích PHP'``
# Đếm độ dài bằng lệnh `wc`
quăng đi 'Tôi thích Bash' | wc -NS
# Đếm độ dài bằng lệnh `awk`
quăng đi 'Tôi thích Python' | awk '{chiều dài bản in}'

# 30. Làm thế nào để chạy nhiều tập lệnh bash song song?

Nhiều tập lệnh bash có thể được thực thi song song bằng cách sử dụng nohup chỉ huy. Cách nhiều tệp bash có thể được thực thi song song từ một thư mục được hiển thị trong ví dụ sau.

Thí dụ:

# Gán tên thư mục với đường dẫn trong biến $ dir có chứa
# nhiều tệp bash
cho bạn='home / Ubuntu / temp'

Vòng lặp # for sẽ đọc từng tệp từ thư mục và thực thi song song
kịch bảntrongcho bạn/ *.NS
làm
nohup bấu víu '$ script' &
xong

Phần kết luận:

Hầu hết các câu hỏi phỏng vấn kịch bản bash cơ bản được mô tả trong bài viết này cho những độc giả muốn bắt đầu sự nghiệp lập trình viên bash.