Tôi có hai tập lệnh Bash. Các tập lệnh mẹ gọi các chỉ số để thực hiện một số hành động và trả về một giá trị. Làm thế nào tôi có thể trả về một giá trị từ subscript cho kịch bản mẹ? Thêm một số return
vào chỉ số và bắt được giá trị trong phụ huynh không hoạt động.Bash - Giá trị trả về từ chỉ số tới tập lệnh mẹ
Trả lời
Tôi giả sử các tập lệnh này đang chạy trong hai quy trình khác nhau, tức là bạn không "tìm nguồn cung ứng" một trong số chúng.
Tùy thuộc vào những gì bạn muốn trả lại. Nếu bạn chỉ muốn trả lại mã thoát từ 0 đến 255 thì:
# Child (for example: 'child_script')
exit 42
# Parent
child_script
retn_code=$?
Nếu bạn muốn trả về chuỗi văn bản, bạn sẽ phải thực hiện điều đó thông qua stdout (hoặc tệp). Có một số cách để chụp đó, đơn giản nhất là:
# Child (for example: 'child_script')
echo "some text value"
# Parent
retn_value=$(child_script)
Phương thức echo có trả về mọi thứ được lặp lại bởi tập lệnh con hay chỉ dòng cuối cùng? –
@AakilFernandes: trong trường hợp này, 'echo' viết dòng cho nó:" một số giá trị văn bản "trong ví dụ. Tuy nhiên, cha mẹ là bắt tất cả các đầu ra tiêu chuẩn từ đứa trẻ, cho dù nó đến từ một 'echo' hay không. Đó có thể là nhiều dòng được phân cách bằng dòng mới '$ '\ n'' – cdarke
trả lại giá trị từ chỉ số và kiểm tra biến $? chứa giá trị trả lại
"Return" không rõ ràng ở đây, vì câu lệnh 'return' chỉ có thể được sử dụng để trả về từ một hàm, không phải là một tập lệnh. Để chính xác, bạn cần sử dụng câu lệnh 'exit' để trả về từ tập lệnh. – chepner
@chepner: thực sự 'return' cũng có thể được sử dụng từ tệp" có nguồn gốc "(' .' hoặc 'source'), nhưng sau đó là một tập lệnh? – cdarke
Ah, phức tạp. Tôi đoán câu trả lời đúng sau đó là "sử dụng' return' hoặc 'exit' khi thích hợp". – chepner
- 1. Cách lấy giá trị trả về từ MATLAB trong tập lệnh bash?
- 2. Bash - Thoát tập lệnh mẹ từ tập lệnh con
- 3. Kiểm tra giá trị trả về của chương trình C trong tập lệnh bash?
- 4. Phép trừ lubridate chỉ trả về giá trị số
- 5. Giá trị trả về từ mã Java
- 6. Làm thế nào để lưu trữ các giá trị trả về lệnh trong mảng bash
- 7. giá trị trạng thái trả về của tập lệnh shell khi được gọi từ ruby?
- 8. Tập lệnh Bash để chèn các giá trị trong MySQL
- 9. Giá trị trả về giá trị python tkinter từ hàm được sử dụng trong lệnh
- 10. Giá trị trả về Lua os.execute
- 11. trả về hai giá trị từ webservice
- 12. Bắt giá trị trả về từ Task.Run
- 13. Giá trị trả về Mybatis
- 14. Giá trị trả về của WPF Gọi giá trị trả lại luôn là số
- 15. Gửi đối số từ tệp Batch tới tập lệnh Python
- 16. đối số dòng lệnh trong bash tới Rscript
- 17. gán giá trị cho biến shell sử dụng giá trị trả về hàm từ Python
- 18. Lệnh trong MVVM (WPF) - cách trả về một giá trị?
- 19. Lỗi không thể giải thích trong bash: lệnh printf bên trong tập lệnh trả về "số không hợp lệ"
- 20. Gán giá trị trả về của hàm cho một biến trong tập lệnh shell unix
- 21. Chức năng trả về giá trị không có lệnh return
- 22. Thực hành tốt nhất để trả về lỗi từ hàm lua trả về nhiều giá trị
- 23. Cách trả về giá trị từ __init__ bằng Python?
- 24. PHP open_basedir - để trả về giá trị?
- 25. Gọi một tập lệnh bash từ tập lệnh tcl và trạng thái trở về và thoát
- 26. Cách nhận giá trị trả lại từ một exec trong tập lệnh ant
- 27. Chạy tập lệnh bash từ tập lệnh R
- 28. Biến trong Tập lệnh Bash giữ giá trị từ lần chạy cuối cùng
- 29. Trả về giá trị tùy chỉnh từ hộp thoại WPF
- 30. Cách tốt nhất để trả lại giá trị từ tập lệnh python
Hãy xem câu trả lời này từ ngày hôm qua: http://stackoverflow.com/a/16325765/1983854 - nó có thể giúp rất nhiều – fedorqui