Hướng dẫn pass python variable to bash - chuyển biến python sang bash
Làm thế nào tôi sẽ chuyển một biến Python cho vỏ bash? Nó sẽ hoạt động như thế này: Thay thế các tài liệu kép bằng `s Tôi đã thử in và sys. Exex kết quả, nhưng không có kết quả. Làm thế nào tôi sẽ hoàn thành mục tiêu của mình? Khi được hỏi ngày 9 tháng 5 năm 2010 lúc 7:20May 9, 2010 at 7:20
Đó là nó. 0. Hoặc 1. Hoặc những thứ tương tự. Nếu tập lệnh không thể thực thi thì bạn sẽ cần chỉ định trình thông dịch một cách rõ ràng.
Đã trả lời ngày 9 tháng 5 năm 2010 lúc 7:22May 9, 2010 at 7:22
Trong bash, cả `` cmd 2 và $ (CMD) sẽ được thay thế bằng đầu ra của lệnh. Điều này cho phép bạn gán đầu ra của chương trình cho một biến như
hoặc
Thông thường bạn bọc điều này trong các trích dẫn kép để bạn có thể có khoảng trắng trong đầu ra của mình. Nó phải là trích dẫn gấp đôi vì những thứ bên trong trích dẫn đơn sẽ không được thực thi. Đã trả lời ngày 9 tháng 5 năm 2010 lúc 18:31May 9, 2010 at 18:31
Seamusseamusseamus 4453 Huy hiệu bạc5 Huy hiệu Đồng3 silver badges5 bronze badges Hình thức mong muốn của bạn hoạt động tốt:
Vì vậy, có lẽ những cách mà bạn đã thử in là không chính xác. . Nếu bạn vẫn gặp vấn đề này, bạn có thể cho chúng tôi xem ví dụ tối thiểu về mã Python tái tạo nó, để giúp chúng tôi giúp bạn không? Đã trả lời ngày 9 tháng 5 năm 2010 lúc 14:22May 9, 2010 at 14:22
Alex Martellialex MartelliAlex Martelli 830K165 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng165 gold badges1205 silver badges1385 bronze badges Không. Đó không phải là cách sử dụng mô -đun 4 và ví dụ đó sẽ không hoạt động.Một trong những mục tiêu của mô -đun 4 là tránh sử dụng shell để phân tích đối số khi thực hiện các quá trình con, trái ngược với cách những thứ như 6 hoạt động buộc phải xảy ra. Các thói quen khác nhau trong mô -đun 4 theo mặc định không sử dụng shell và mong đợi một chuỗi (danh sách hoặc tuple) của các đối số đã được chia, để chương trình có thể trực tiếp chia tách. Tránh vỏ cho công việc này là an toàn và nhanh hơn.Nếu 9 có bộ bit thực thi và bắt đầu bằng một dòng hashbang hợp lệ, thì cách thích hợp để gọi đó là:
Nếu 9 thiếu bit thực thi hoặc không có dòng hashbang, thì đây là cách thích hợp:
(Bạn có thể thay thế 1 nếu tập lệnh sử dụng các tính năng dành riêng cho BASH.)Trong cả hai trường hợp, các đối số được đưa ra như một chuỗi và không nên sử dụng 2. Điều đó chỉ đánh bại toàn bộ mục đích của việc sử dụng 4. (Và nếu bạn chỉ định 2, bạn phải cung cấp các đối số dưới dạng một chuỗi, không phải là một chuỗi.)not be used. That just defeats the whole purpose of using 4. (And if you do specify 2, you must provide the arguments as a single string, not as a sequence.) Tôi có mã Python hiện có và tôi cần gọi một tập lệnh bash từ bên trong.Mã Python nắm bắt được một vài biến và tôi cần điều này được chuyển đến vỏ của tôi để tránh đầu vào trùng lặp từ người dùng. Tôi đã tạo một tập lệnh kiểm tra để mô phỏng điều này, tuy nhiên, tôi không thể lặp lại các biến trong shell (nó trả lại một null) 1): Có thể chuyển biến Python cho tập lệnh shell được gọi là bằng cách sử dụng quy trình con không?2) Nếu mã dưới đây có thể được tối ưu hóa để đạt được điều này, tôi sẽ mở để phản hồi. Mã Python:
Mã bash (script.sh): |