Đối số tùy chọn arg có thể là một số nguyên cho biết trạng thái thoát (mặc định là 0) hoặc một loại đối tượng khác. Nếu nó là một số nguyên, số 0 được coi là "kết thúc thành công" và bất kỳ giá trị khác 0 nào được coi là "kết thúc bất thường" bởi shell và những thứ tương tự. Hầu hết các hệ thống yêu cầu nó nằm trong phạm vi 0-127 và tạo ra kết quả không xác định nếu không Show Ngoài ra, để truy xuất giá trị trả về của chương trình được thực thi cuối cùng, bạn có thể sử dụng phương thức $? Dù sao nếu bạn đặt một chuỗi là arg trong sys. exit() nó sẽ được in ở cuối đầu ra chương trình của bạn trong một dòng riêng biệt, để bạn có thể truy xuất nó chỉ bằng một chút phân tích cú pháp. Như một ví dụ xem xét điều này Các nhiệm vụ lặp đi lặp lại đã chín muồi để tự động hóa. Các nhà phát triển và quản trị viên hệ thống thường tự động hóa các tác vụ thông thường như kiểm tra tình trạng và sao lưu tệp bằng tập lệnh shell. Tuy nhiên, khi các tác vụ đó trở nên phức tạp hơn, các tập lệnh shell có thể trở nên khó bảo trì hơn May mắn thay, chúng ta có thể sử dụng Python thay vì shell script để tự động hóa. Python cung cấp các phương thức để chạy các lệnh shell, cung cấp cho chúng ta chức năng giống như các tập lệnh shell đó. Học cách chạy các lệnh shell trong Python mở ra cơ hội để chúng ta tự động hóa các tác vụ máy tính theo cách có cấu trúc và có thể mở rộng Trong bài viết này, chúng ta sẽ xem xét các cách khác nhau để thực thi lệnh shell trong Python và tình huống lý tưởng để sử dụng từng phương thức Sử dụng hệ điều hành. hệ thống để chạy một lệnhPython cho phép chúng ta thực thi ngay một lệnh shell được lưu trữ trong một chuỗi bằng cách sử dụng hàm 5Hãy bắt đầu bằng cách tạo một tệp Python mới có tên là 6 và nhập thông tin sau
Điều đầu tiên chúng tôi làm trong tệp Python của mình là nhập mô-đun 7, chứa hàm 8 có thể thực thi các lệnh trình bao. Dòng tiếp theo thực hiện chính xác điều đó, chạy lệnh 9 trong trình bao của chúng tôi thông qua PythonTrong Terminal của bạn, hãy chạy tệp này bằng cách sử dụng lệnh sau và bạn sẽ thấy đầu ra tương ứng
Khi các lệnh 9 in tới 1 của chúng tôi, thì 5 cũng hiển thị đầu ra trên luồng 1 của chúng tôi. Mặc dù không hiển thị trong bảng điều khiển, nhưng lệnh 5 trả về mã thoát của lệnh shell. Mã thoát bằng 0 có nghĩa là nó chạy mà không có bất kỳ sự cố nào và bất kỳ số nào khác có nghĩa là có lỗiHãy tạo một tệp mới có tên là 5 và nhập nội dung sau________số 8Trong tập lệnh này, chúng tôi tạo hai biến lưu trữ kết quả thực hiện các lệnh thay đổi thư mục thành thư mục chính và thư mục không tồn tại. Chạy file này ta sẽ thấy 4Lệnh đầu tiên, thay đổi thư mục thành thư mục chính, thực hiện thành công. Do đó, 5 trả về mã thoát của nó, số 0, được lưu trữ trong 7. Mặt khác, 8 lưu trữ mã thoát của lệnh bash không thành công để thay đổi thư mục thành thư mục không tồn tạiHàm 5 thực thi một lệnh, in bất kỳ đầu ra nào của lệnh ra bàn điều khiển và trả về mã thoát của lệnh. Nếu chúng ta muốn kiểm soát chi tiết hơn đối với đầu vào và đầu ra của lệnh shell trong Python, chúng ta nên sử dụng mô-đun ________ 140Chạy một lệnh với quy trình conMô-đun quy trình con là cách được đề xuất của Python để thực thi các lệnh shell. Nó cho phép chúng tôi linh hoạt để chặn đầu ra của các lệnh shell hoặc xâu chuỗi đầu vào và đầu ra của nhiều lệnh khác nhau, trong khi vẫn cung cấp trải nghiệm tương tự như 5 cho các trường hợp sử dụng cơ bảnTrong một trường mới có tên là ________ 142, hãy viết đoạn mã sau 2Trong dòng đầu tiên, chúng tôi nhập mô-đun 40, là một phần của thư viện chuẩn Python. Sau đó chúng ta sử dụng hàm 44 để thực hiện lệnh. Giống như 5, lệnh 44 trả về mã thoát của những gì đã được thực thiKhông giống như 5, lưu ý cách 44 yêu cầu danh sách các chuỗi làm đầu vào thay vì một chuỗi. Mục đầu tiên của danh sách là tên của lệnh. Các mục còn lại của danh sách là cờ và đối số của lệnhGhi chú. Theo nguyên tắc thông thường, bạn cần phân tách các đối số dựa trên dấu cách, ví dụ 49 sẽ là 20, trong khi 21 sẽ là 22. Một ví dụ khác, 23 sẽ là 24, trong khi 25 hoặc 26 sẽ là 27Chạy tệp này và đầu ra của bảng điều khiển của bạn sẽ tương tự như 8Bây giờ, hãy thử sử dụng một trong những tính năng nâng cao hơn của 44, cụ thể là bỏ qua đầu ra cho 1. Trong cùng một tệp 42, thay đổi 2để này 3Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó Đầu ra tiêu chuẩn của lệnh hiện chuyển đến thiết bị 81 đặc biệt, có nghĩa là đầu ra sẽ không xuất hiện trên bảng điều khiển của chúng tôi. Thực thi tệp trong trình bao của bạn để xem đầu ra sau 5Nếu chúng ta muốn cung cấp đầu vào cho một lệnh thì sao? . Tạo một tệp mới có tên là 84, nhập nội dung sauChúng tôi sử dụng 44 với khá nhiều lệnh, hãy xem qua chúng
Chạy tệp này tạo ra đầu ra sau 6Chúng tôi cũng có thể tăng 22 mà không cần kiểm tra giá trị trả về theo cách thủ công. Trong một tệp mới, 23, hãy thêm mã bên dưới 0Trong Terminal của bạn, hãy chạy tệp này. Bạn sẽ thấy lỗi sau 1Bằng cách sử dụng 24, chúng tôi yêu cầu Python đưa ra bất kỳ ngoại lệ nào nếu gặp lỗi. Vì chúng tôi đã gặp phải lỗi, câu lệnh 25 trên dòng cuối cùng không được thực thiHàm 44 mang lại cho chúng ta sự linh hoạt to lớn mà 5 không có khi thực hiện các lệnh shell. Hàm này là sự trừu tượng hóa đơn giản của lớp 28, cung cấp chức năng bổ sung mà chúng ta có thể khám pháChạy lệnh với PopenLớp 28 hiển thị nhiều tùy chọn hơn cho nhà phát triển khi tương tác với trình bao. Tuy nhiên, chúng ta cần nói rõ hơn về truy xuất kết quả và lỗiTheo mặc định, 28 không dừng xử lý chương trình Python nếu lệnh của nó chưa thực thi xong. Trong một tệp mới có tên là 31, hãy nhập nội dung sau 2Mã này tương đương với mã của 42. Nó chạy một lệnh bằng cách sử dụng 28 và đợi nó hoàn thành trước khi thực hiện phần còn lại của tập lệnh PythonGiả sử chúng ta không muốn đợi lệnh shell của mình thực thi xong để chương trình có thể làm việc trên những thứ khác. Làm sao nó biết khi nào lệnh shell đã thực thi xong? Phương thức 34 trả về mã thoát nếu một lệnh đã chạy xong hoặc 35 nếu nó vẫn đang thực thi. Ví dụ: nếu chúng tôi muốn kiểm tra xem 36 đã hoàn tất hay chưa thay vì đợi nó, chúng tôi sẽ có dòng mã sau 3Để quản lý đầu vào và đầu ra với 28, chúng ta cần sử dụng phương thức 38Trong một tệp mới có tên là 39, hãy thêm đoạn mã sau 4Phương thức 38 lấy một đối số 83 được sử dụng để truyền đầu vào cho lệnh trình bao. Phương thức 52 cũng trả về cả 1 và 89 khi chúng được đặtSau khi xem xét các ý tưởng cốt lõi đằng sau 28, giờ đây chúng ta đã đề cập đến ba cách để chạy các lệnh shell trong Python. Cùng kiểm tra lại các đặc điểm của chúng để biết phương pháp nào phù hợp nhất với yêu cầu của dự ánTôi nên sử dụng cái nào?Nếu bạn cần chạy một hoặc một vài lệnh đơn giản và không phiền nếu đầu ra của chúng được chuyển đến bàn điều khiển, bạn có thể sử dụng lệnh 5. Nếu bạn muốn quản lý đầu vào và đầu ra của lệnh shell, hãy sử dụng 44. Nếu bạn muốn chạy một lệnh và tiếp tục thực hiện công việc khác trong khi nó đang được thực thi, hãy sử dụng 28Đây là bảng có một số khác biệt về khả năng sử dụng mà bạn cũng có thể sử dụng để đưa ra quyết định của mình hệ điều hành. quy trình hệ thống. runsub process. PopenYêu cầu đối số được phân tích cú phápnoyesyesĐợi lệnhyesyesnoGiao tiếp với stdin và stdoutnoyesyesReturnsreturn valueobjectobjectSự kết luậnPython cho phép bạn thực thi các lệnh shell mà bạn có thể sử dụng để khởi động các chương trình khác hoặc quản lý tốt hơn các tập lệnh shell mà bạn sử dụng để tự động hóa. Tùy thuộc vào trường hợp sử dụng của chúng tôi, chúng tôi có thể sử dụng 5, 44 hoặc 28 để chạy các lệnh bash
Chúng ta có thể quay lại tập lệnh shell không?lệnh return được sử dụng để thoát khỏi hàm shell . Nó nhận một tham số [N], nếu N được đề cập thì nó trả về [N] và nếu N không được đề cập thì nó trả về trạng thái của lệnh cuối cùng được thực thi trong hàm hoặc tập lệnh.
'$' trong vỏ là gì?Khóa học lệnh Unix cho người mới bắt đầu
. Ví dụ: ký tự $ đại diện cho số ID tiến trình hoặc PID của trình bao hiện tại − $echo $$
$1 trong shell script là gì?$1 - Đối số đầu tiên được gửi tới tập lệnh . $2 - Đối số thứ hai được gửi tới tập lệnh. $3 - Đối số thứ ba. và kể từ đó trở đi. $# - Số đối số được cung cấp.
%% Bash trong Python là gì?Shell Bourne-Again (mã nguồn), hầu như luôn được gọi đơn giản là "Bash", diễn giải và thực thi đầu vào được nhập từ một nguồn chẳng hạn như người dùng hoặc chương trình< . Bash là một triển khai của khái niệm shell và thường được sử dụng trong quá trình phát triển phần mềm Python như một phần của môi trường phát triển của lập trình viên. . Bash is an implementation of the shell concept and is often used during Python software development as part of a programmer's development environment. |