Kịch bản Bash: sự khởi đầu

Kịch bản Bash: sự khởi đầu
Tập lệnh Bash Phần 2: Vòng lặp
Tập lệnh Bash, Phần 3: Tùy chọn dòng lệnh và chuyển đổi
Tập lệnh Bash Phần 4: Đầu vào và đầu ra
Tập lệnh Bash, Phần 5: Tín hiệu, Tác vụ nền, Quản lý tập lệnh
Tập lệnh Bash, Phần 6: Phát triển chức năng và thư viện
Tập lệnh Bash, Phần 7: sed và Xử lý văn bản
Tập lệnh Bash, phần 8: ngôn ngữ xử lý dữ liệu awk
Tập lệnh Bash Phần 9: Biểu thức chính quy
Tập lệnh Bash Phần 10: Ví dụ thực tế
Tập lệnh Bash, phần 11: mong đợi và tự động hóa các tiện ích tương tác

Hôm nay chúng ta sẽ nói về bash script. Cái này - kịch bản dòng lệnh, được viết cho bash shell. Có các shell khác như zsh, tcsh, ksh, nhưng chúng ta sẽ tập trung vào bash. Tài liệu này dành cho tất cả mọi người, điều kiện duy nhất là khả năng làm việc trong dòng lệnh Linux.

Kịch bản Bash: sự khởi đầu

Tập lệnh dòng lệnh là tập hợp các lệnh giống nhau có thể được nhập từ bàn phím, được tập hợp thành các tệp và hợp nhất bởi một số mục đích chung. Trong trường hợp này, kết quả làm việc của các nhóm có thể có giá trị độc lập hoặc dùng làm dữ liệu đầu vào cho các nhóm khác. Tập lệnh là một cách mạnh mẽ để tự động hóa các hành động được thực hiện thường xuyên.

Kịch bản Bash: sự khởi đầu

Vì vậy, nếu chúng ta nói về dòng lệnh, nó cho phép bạn thực thi một số lệnh cùng một lúc bằng cách nhập chúng, phân tách bằng dấu chấm phẩy:

pwd ; whoami

Trên thực tế, nếu bạn đã thử điều này trong terminal của mình, tập lệnh bash đầu tiên liên quan đến hai lệnh đã được viết. Nó hoạt động như thế này. Đội đầu tiên pwd hiển thị thông tin về thư mục làm việc hiện tại, sau đó lệnh whoamihiển thị thông tin về người dùng mà bạn đã đăng nhập.

Sử dụng phương pháp này, bạn có thể kết hợp bao nhiêu lệnh tùy thích trên một dòng, giới hạn duy nhất là số lượng đối số tối đa có thể được truyền cho chương trình. Bạn có thể xác định giới hạn này bằng lệnh sau:

getconf ARG_MAX

Dòng lệnh là một công cụ tuyệt vời, nhưng bạn phải nhập lệnh vào đó mỗi khi cần. Điều gì sẽ xảy ra nếu chúng ta viết một tập lệnh vào một tệp và chỉ cần gọi tệp đó để thực thi chúng? Trên thực tế, tập tin chúng ta đang nói đến được gọi là tập lệnh dòng lệnh.

Cách hoạt động của tập lệnh bash

Tạo một tập tin trống bằng lệnh touch. Dòng đầu tiên của nó cần cho biết chúng ta sẽ sử dụng shell nào. Chúng tôi rất hứng thú với bash, vì vậy dòng đầu tiên của tệp sẽ là:

#!/bin/bash

Các dòng khác trong tệp này sử dụng ký hiệu băm để biểu thị các nhận xét mà shell không xử lý. Tuy nhiên, dòng đầu tiên là trường hợp đặc biệt, có dấu băm theo sau là dấu chấm than (dòng này được gọi là shebang) và đường đi đến bash, cho hệ thống biết rằng tập lệnh được tạo riêng cho bash.

Các lệnh Shell được phân tách bằng nguồn cấp dữ liệu dòng, các nhận xét được phân tách bằng dấu băm. Đây là những gì nó trông giống như:

#!/bin/bash
# This is a comment
pwd
whoami

Ở đây, giống như trên dòng lệnh, bạn có thể viết lệnh trên một dòng, phân tách bằng dấu chấm phẩy. Tuy nhiên, nếu bạn viết lệnh trên các dòng khác nhau thì file sẽ dễ đọc hơn. Trong mọi trường hợp, shell sẽ xử lý chúng.

Đặt quyền cho tệp tập lệnh

Lưu tập tin và đặt tên cho nó myscript, và công việc tạo tập lệnh bash gần như đã hoàn tất. Bây giờ tất cả những gì còn lại là làm cho tệp này có thể thực thi được, nếu không, nếu bạn cố chạy nó, bạn sẽ gặp lỗi Permission denied.

Kịch bản Bash: sự khởi đầu
Đang cố chạy tệp tập lệnh có quyền được định cấu hình không chính xác

Hãy làm cho tập tin có thể thực thi được:

chmod +x ./myscript

Bây giờ hãy thử thực hiện nó:

./myscript

Sau khi thiết lập quyền, mọi thứ sẽ hoạt động như bình thường.

Kịch bản Bash: sự khởi đầu
Chạy thành công tập lệnh bash

Đầu ra tin nhắn

Để xuất văn bản ra bảng điều khiển Linux, hãy sử dụng lệnh echo. Hãy sử dụng kiến ​​thức về thực tế này và chỉnh sửa tập lệnh của chúng ta, thêm phần giải thích cho dữ liệu được xuất ra bằng các lệnh đã có trong đó:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Đây là những gì xảy ra sau khi chạy tập lệnh cập nhật.

Kịch bản Bash: sự khởi đầu
Xuất tin nhắn từ tập lệnh

Bây giờ chúng ta có thể hiển thị ghi chú giải thích bằng lệnh echo. Nếu bạn không biết cách chỉnh sửa tệp bằng các công cụ Linux hoặc bạn chưa từng thấy lệnh này trước đây echo, hãy xem này vật liệu.

Sử dụng biến

Các biến cho phép bạn lưu trữ thông tin trong một tập tin script, chẳng hạn như kết quả của các lệnh, để sử dụng cho các lệnh khác.

Không có gì sai khi thực hiện các lệnh riêng lẻ mà không lưu trữ kết quả của chúng, nhưng cách tiếp cận này khá hạn chế về khả năng của nó.

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

  • Các biến môi trường
  • Biến người dùng

Các biến môi trường

Đôi khi các lệnh shell cần hoạt động với một số dữ liệu hệ thống. Dưới đây là ví dụ về cách hiển thị thư mục chính của người dùng hiện tại:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Xin lưu ý rằng chúng ta có thể sử dụng một biến hệ thống $HOME trong dấu ngoặc kép, điều này sẽ không ngăn hệ thống nhận ra nó. Đây là những gì bạn nhận được nếu bạn chạy kịch bản trên.

Kịch bản Bash: sự khởi đầu
Sử dụng biến môi trường trong tập lệnh

Nếu bạn cần hiển thị ký hiệu đô la trên màn hình thì sao? Chúng ta hãy cố gắng này:

echo "I have $1 in my pocket"

Hệ thống sẽ phát hiện ký hiệu đô la trong chuỗi trích dẫn và cho rằng chúng ta đã tham chiếu một biến. Tập lệnh sẽ cố gắng hiển thị giá trị của một biến không xác định $1. Đây không phải là những gì chúng ta cần. Phải làm gì?

Trong tình huống này, việc sử dụng ký tự thoát, dấu gạch chéo ngược trước ký hiệu đô la sẽ giúp ích:

echo "I have $1 in my pocket"

Tập lệnh bây giờ sẽ xuất ra chính xác những gì được mong đợi.

Kịch bản Bash: sự khởi đầu
Sử dụng chuỗi thoát để in ký hiệu đô la

Biến người dùng

Ngoài các biến môi trường, tập lệnh bash cho phép bạn xác định và sử dụng các biến của riêng mình trong tập lệnh. Các biến như vậy giữ một giá trị cho đến khi tập lệnh hoàn tất thực thi.

Giống như các biến hệ thống, các biến người dùng có thể được truy cập bằng ký hiệu đô la:
TNW-CUS-FMP - mã khuyến mãi giảm giá 10% cho các dịch vụ của chúng tôi, có sẵn để kích hoạt trong vòng 7 ngày

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Đây là những gì xảy ra sau khi chạy một tập lệnh như vậy.

Kịch bản Bash: sự khởi đầu
Biến tùy chỉnh trong tập lệnh

Thay thế lệnh

Một trong những tính năng hữu ích nhất của tập lệnh bash là khả năng trích xuất thông tin từ đầu ra lệnh và gán nó cho các biến, cho phép bạn sử dụng thông tin này ở bất kỳ đâu trong tệp tập lệnh.

Điều này có thể được thực hiện theo hai cách.

  • Sử dụng dấu ngược "`"
  • Thiết kế bởi $()

Khi sử dụng phương pháp đầu tiên, hãy cẩn thận không bao gồm một dấu ngoặc kép thay cho dấu ngược. Lệnh phải được đặt trong hai biểu tượng như vậy:

mydir=`pwd`

Trong cách tiếp cận thứ hai, điều tương tự được viết như thế này:

mydir=$(pwd)

Và kịch bản có thể sẽ trông như thế này:

#!/bin/bash
mydir=$(pwd)
echo $mydir

Trong quá trình hoạt động, đầu ra của lệnh pwdsẽ được lưu trong một biến mydir, nội dung trong đó, sử dụng lệnh echo, sẽ đi tới bảng điều khiển.

Kịch bản Bash: sự khởi đầu
Tập lệnh lưu kết quả của lệnh vào một biến

Các hoạt động toán học

Để thực hiện các phép toán trong tệp script, bạn có thể sử dụng cấu trúc như $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Kịch bản Bash: sự khởi đầu
Các phép toán trong tập lệnh

cấu trúc điều khiển if-then

Trong một số trường hợp, bạn cần kiểm soát luồng thực thi lệnh. Ví dụ: nếu một giá trị nhất định lớn hơn năm, bạn cần thực hiện một hành động, nếu không thì thực hiện một hành động khác. Điều này có thể áp dụng được trong nhiều tình huống và ở đây cấu trúc điều khiển sẽ giúp chúng ta if-then. Ở dạng đơn giản nhất, nó trông như thế này:

if команда
then
команды
fi

Đây là một ví dụ hoạt động:

#!/bin/bash
if pwd
then
echo "It works"
fi

Trong trường hợp này, nếu lệnh được thực thi pwdsẽ hoàn tất thành công, dòng chữ “it works” sẽ được hiển thị trong bảng điều khiển.

Hãy sử dụng kiến ​​thức chúng ta có và viết một kịch bản phức tạp hơn. Giả sử chúng ta cần tìm một người dùng nhất định trong /etc/passwdvà nếu bạn tìm được nó, hãy báo cáo rằng nó tồn tại.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Đây là những gì xảy ra sau khi chạy tập lệnh này.

Kịch bản Bash: sự khởi đầu
Tìm kiếm người dùng

Ở đây chúng tôi đã sử dụng lệnh grepđể tìm kiếm một người dùng trong một tập tin /etc/passwd. Nếu đội grepxa lạ với bạn, mô tả của nó có thể được tìm thấy đây.

Trong ví dụ này, nếu tìm thấy người dùng, tập lệnh sẽ hiển thị thông báo tương ứng. Nếu không tìm thấy người dùng thì sao? Trong trường hợp này, tập lệnh sẽ chỉ hoàn tất việc thực thi mà không cho chúng ta biết bất cứ điều gì. Chúng tôi cũng muốn anh ấy cho chúng tôi biết về điều này, vì vậy chúng tôi sẽ cải thiện mã.

cấu trúc điều khiển if-then-else

Để chương trình có thể báo cáo cả kết quả tìm kiếm thành công và thất bại, chúng ta sẽ sử dụng cấu trúc if-then-else. Đây là cách nó hoạt động:

if команда
then
команды
else
команды
fi

Nếu lệnh đầu tiên trả về XNUMX, nghĩa là nó được thực thi thành công, điều kiện sẽ đúng và việc thực thi sẽ không tiếp tục dọc theo nhánh else. Ngược lại, nếu trả về giá trị khác XNUMX, điều này cho thấy kết quả không thành công hoặc kết quả sai, thì các lệnh sau else.

Hãy viết đoạn script sau:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

Cuộc hành hình của anh ta đã đi xuống cống else.

Kịch bản Bash: sự khởi đầu
Chạy tập lệnh có cấu trúc if-then-else

Chà, hãy tiếp tục và tự hỏi bản thân về những điều kiện phức tạp hơn. Điều gì sẽ xảy ra nếu bạn cần kiểm tra không phải một điều kiện mà là nhiều điều kiện? Ví dụ: nếu tìm thấy người dùng mong muốn, một thông báo sẽ được hiển thị, nếu một số điều kiện khác được đáp ứng, một thông báo khác sẽ được hiển thị, v.v. Trong tình huống như vậy, các điều kiện lồng nhau sẽ giúp ích cho chúng ta. Nó trông như thế này:

if команда1
then
команды
elif команда2
then
команды
fi

Nếu lệnh đầu tiên trả về XNUMX, điều này cho biết lệnh thực hiện thành công thì các lệnh trong khối đầu tiên sẽ được thực thi then, nếu không, nếu điều kiện đầu tiên sai và nếu lệnh thứ hai trả về XNUMX thì khối mã thứ hai sẽ được thực thi.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

Trong tập lệnh như vậy, ví dụ: bạn có thể tạo người dùng mới bằng lệnh useradd, nếu tìm kiếm không mang lại kết quả hoặc làm điều gì khác hữu ích.

So sánh các con số

Trong tập lệnh, bạn có thể so sánh các giá trị số. Dưới đây là danh sách các lệnh có liên quan.

n1 -eq n2Trả về true nếu n1 bằng n2.
n1 -ge n2 Trả về true nếu n1nhiều hơn hoặc bằng n2.
n1 -gt n2Trả về true nếu n1 nhiều hơn n2.
n1 -le n2Trả về true nếu n1ít hơn hoặc bằng n2.
n1 -lt n2Trả về true nếu n1 nhỏ hơn n2.
n1 -ne n2Trả về true nếu n1không bằng nhau n2.

Để làm ví dụ, hãy thử một trong các toán tử so sánh. Lưu ý rằng biểu thức được đặt trong dấu ngoặc vuông.

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

Đây là những gì lệnh này sẽ xuất ra.

Kịch bản Bash: sự khởi đầu
So sánh các con số trong chữ viết

Giá trị biến val1lớn hơn 5, nhánh sẽ được thực thi thentoán tử so sánh và một thông báo tương ứng được hiển thị trong bảng điều khiển.

So sánh chuỗi

Tập lệnh cũng có thể so sánh các giá trị chuỗi. Các toán tử so sánh trông khá đơn giản, nhưng các phép toán so sánh chuỗi có một số tính năng nhất định mà chúng ta sẽ đề cập bên dưới. Đây là danh sách các nhà khai thác.

str1 = str2 Kiểm tra sự bằng nhau của các chuỗi, trả về true nếu các chuỗi giống hệt nhau.
str1 != str2Trả về true nếu các chuỗi không giống nhau.
str1 < str2Trả về true nếu str1ít hơn str2.
str1 > str2 Trả về true nếu str1nhiều hơn str2.
-n str1 Trả về true nếu độ dài str1Hơn không.
-z str1Trả về true nếu độ dài str1bằng không.

Đây là ví dụ về so sánh các chuỗi trong tập lệnh:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

Kết quả của việc thực thi tập lệnh, chúng tôi nhận được những điều sau đây.

Kịch bản Bash: sự khởi đầu
So sánh các chuỗi trong tập lệnh

Đây là một tính năng đáng được đề cập của so sánh chuỗi. Cụ thể, các toán tử ">" và "<" phải được thoát bằng dấu gạch chéo ngược, nếu không tập lệnh sẽ không hoạt động chính xác, mặc dù sẽ không có thông báo lỗi nào xuất hiện. Tập lệnh diễn giải dấu ">" dưới dạng lệnh chuyển hướng đầu ra.

Đây là cách làm việc với các toán tử này trong mã:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Đây là kết quả của kịch bản.

Kịch bản Bash: sự khởi đầu
So sánh chuỗi, cảnh báo được đưa ra

Xin lưu ý rằng tập lệnh, mặc dù được thực thi, vẫn đưa ra cảnh báo:

./myscript: line 5: [: too many arguments

Để loại bỏ cảnh báo này, chúng tôi kết luận $val2 trong dấu ngoặc kép:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Bây giờ mọi thứ hoạt động như bình thường.

Kịch bản Bash: sự khởi đầu
So sánh chuỗi

Một tính năng khác của toán tử ">" và "<" là cách chúng hoạt động với các ký tự viết hoa và viết thường. Để hiểu tính năng này, chúng ta hãy chuẩn bị một tệp văn bản có nội dung sau:

Likegeeks
likegeeks

Hãy lưu nó bằng cách đặt tên cho nó myfile, sau đó chạy lệnh sau trong terminal:

sort myfile

Nó sẽ sắp xếp các dòng từ tệp như thế này:

likegeeks
Likegeeks

Đội sort, theo mặc định, sắp xếp các chuỗi theo thứ tự tăng dần, nghĩa là chữ thường trong ví dụ của chúng ta nhỏ hơn chữ in hoa. Bây giờ hãy chuẩn bị một tập lệnh sẽ so sánh các chuỗi giống nhau:

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Nếu bạn chạy nó, hóa ra mọi thứ lại diễn ra ngược lại - chữ thường bây giờ lớn hơn chữ in hoa.

Kịch bản Bash: sự khởi đầu
Lệnh sắp xếp và so sánh các chuỗi trong file script

Trong các lệnh so sánh, chữ hoa nhỏ hơn chữ thường. So sánh chuỗi ở đây được thực hiện bằng cách so sánh mã ASCII của các ký tự, do đó thứ tự sắp xếp phụ thuộc vào mã ký tự.

Đội sort, lần lượt, sử dụng thứ tự sắp xếp được chỉ định trong cài đặt ngôn ngữ hệ thống.

Kiểm tra tập tin

Có lẽ các lệnh sau được sử dụng thường xuyên nhất trong các tập lệnh bash. Chúng cho phép bạn kiểm tra các điều kiện khác nhau liên quan đến tập tin. Dưới đây là danh sách các lệnh này.

-d fileKiểm tra xem một tập tin có tồn tại và là một thư mục hay không.
-e fileKiểm tra xem tập tin có tồn tại không.
-f file Kiểm tra xem một tập tin có tồn tại và là một tập tin hay không.
-r fileKiểm tra xem tập tin có tồn tại và có thể đọc được hay không.
-s file ПKiểm tra xem tập tin có tồn tại và không trống không.
-w fileKiểm tra xem tập tin có tồn tại và có thể ghi được hay không.
-x fileKiểm tra xem tập tin có tồn tại và có thể thực thi được hay không.
file1 -nt file2 Kiểm tra xem nó có mới hơn không file1hơn file2.
file1 -ot file2Kiểm tra xem có cũ hơn không file1hơn file2.
-O file Kiểm tra xem tệp có tồn tại và thuộc quyền sở hữu của người dùng hiện tại hay không.
-G fileKiểm tra xem tệp có tồn tại hay không và liệu ID nhóm của nó có khớp với ID nhóm của người dùng hiện tại hay không.

Những lệnh này, cũng như nhiều lệnh khác được thảo luận hôm nay, rất dễ nhớ. Tên của họ, là chữ viết tắt của nhiều từ khác nhau, trực tiếp chỉ ra việc kiểm tra mà họ thực hiện.

Hãy thử một trong các lệnh trong thực tế:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

Tập lệnh này, đối với một thư mục hiện có, sẽ hiển thị nội dung của nó.

Kịch bản Bash: sự khởi đầu
Liệt kê nội dung của một thư mục

Chúng tôi tin rằng bạn có thể tự mình thử nghiệm các lệnh còn lại; chúng đều được sử dụng theo cùng một nguyên tắc.

Kết quả

Hôm nay chúng ta đã nói về cách bắt đầu viết bash script và đề cập đến một số điều cơ bản. Trên thực tế, chủ đề về lập trình bash rất lớn. Bài viết này là bản dịch phần đầu tiên của một loạt lớn gồm 11 tài liệu. Nếu bạn muốn tiếp tục ngay bây giờ, đây là danh sách bản gốc của những tài liệu này. Để thuận tiện, bản dịch mà bạn vừa đọc được đưa vào đây.

  1. Tập lệnh Bash từng bước — ở đây chúng ta đang nói về cách bắt đầu tạo tập lệnh bash, việc sử dụng các biến được xem xét, cấu trúc có điều kiện, phép tính, so sánh số, chuỗi và tìm hiểu thông tin về tệp được mô tả.
  2. Bash Scripting Phần 2, Bash tuyệt vời — ở đây các tính năng làm việc với vòng lặp for và while được tiết lộ.
  3. Bash Scripting Phần 3, Tham số & tùy chọn — tài liệu này được dành cho các tham số dòng lệnh và các khóa có thể được truyền tới các tập lệnh, làm việc với dữ liệu mà người dùng nhập và có thể đọc được từ các tệp.
  4. Bash Scripting Phần 4, Đầu vào & Đầu ra - ở đây chúng ta đang nói về bộ mô tả tệp và cách làm việc với chúng, về đầu vào, đầu ra, luồng lỗi và về chuyển hướng đầu ra.
  5. Bash Scripting Phần 5, Tiếng thở dài & Công việc — tài liệu này được dành cho các tín hiệu Linux, việc xử lý chúng trong các tập lệnh và khởi chạy các tập lệnh theo lịch trình.
  6. Bash Scripting Phần 6, Hàm — tại đây bạn có thể tìm hiểu về cách tạo và sử dụng các hàm trong tập lệnh và phát triển thư viện.
  7. Bash Scripting Phần 7, Sử dụng sed — bài viết này được dành để làm việc với trình soạn thảo văn bản phát trực tuyến sed.
  8. Bash Scripting Phần 8, Sử dụng awk — tài liệu này được dành cho việc lập trình bằng ngôn ngữ xử lý dữ liệu awk.
  9. Bash Scripting Phần 9, Biểu thức chính quy — tại đây bạn có thể đọc về cách sử dụng biểu thức chính quy trong tập lệnh bash.
  10. Bash Scripting Phần 10, Ví dụ thực tế — đây là các kỹ thuật để làm việc với các thông báo có thể được gửi tới người dùng cũng như phương pháp giám sát ổ đĩa.
  11. Bash Scripting Phần 11, Lệnh mong đợi — tài liệu này được dành riêng cho công cụ Expect, nhờ đó bạn có thể tự động tương tác với các tiện ích tương tác. Cụ thể, chúng ta đang nói về các tập lệnh mong đợi và sự tương tác của chúng với các tập lệnh bash và các chương trình khác.

Chúng tôi tin rằng một trong những đặc điểm đáng giá của loạt bài này là, bắt đầu từ những điều đơn giản nhất, phù hợp với người dùng ở mọi cấp độ, dần dần dẫn đến những chủ đề khá nghiêm túc, giúp mọi người có cơ hội thăng tiến trong việc tạo ra các tập lệnh dòng lệnh Linux. .

Gởi bạn đọc! Chúng tôi yêu cầu các chuyên gia lập trình bash nói về cách họ đạt đến đỉnh cao thành thạo, chia sẻ bí mật của mình và chúng tôi mong nhận được ấn tượng từ những người vừa viết kịch bản đầu tiên.

Kịch bản Bash: sự khởi đầu

Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát. Đăng nhập, xin vui lòng.

Tôi có nên dịch phần còn lại của loạt bài này không?

  • Có!

  • Không, không cần

1030 người dùng bình chọn. 106 người dùng bỏ phiếu trắng.

Nguồn: www.habr.com

Thêm một lời nhận xét