Tôi có một chức năng mà tôi muốn tham khảo và sử dụng trên các tập lệnh khác nhau. Có cách nào để làm điều này không? Tôi không muốn viết lại cùng chức năng cho các tập lệnh khác nhau. Cảm ơn.Chức năng bash có thể được sử dụng trong các tập lệnh khác nhau không?
Trả lời
Chắc chắn - trong kịch bản của bạn, nơi bạn muốn sử dụng các chức năng, bạn có thể viết một lệnh như
source function.sh
tương đương với bao gồm các nội dung của function.sh
trong file tại điểm mà lệnh là chạy. Lưu ý rằng function.sh
cần phải nằm trong một trong các thư mục trong $PATH
; nếu không, bạn cần chỉ định đường dẫn tuyệt đối.
Có, bạn có thể bản địa hóa tất cả các chức năng của mình trong một tệp chung (hoặc tệp). Đây chính xác là những gì tôi làm với tất cả các chức năng tiện ích của tôi. Tôi có một đơn utility.shinc
trong thư mục chính của tôi đó là được sử dụng bởi tất cả các chương trình của tôi với:
. $HOME/utility.shinc
mà thực thi kịch bản trong bối cảnh của vỏ hiện hành. Điều này là quan trọng - nếu bạn chỉ cần chạy tập lệnh include, nó sẽ chạy trong một subshell và bất kỳ thay đổi nào sẽ không lan truyền đến shell hiện tại.
Bạn có thể làm tương tự cho các nhóm tập lệnh. Nếu nó là một phần của "sản phẩm", tôi có xu hướng đặt tất cả các tập lệnh và mọi tập lệnh được bao gồm trong một thư mục trình bao duy nhất để đảm bảo mọi thứ được bản địa hóa.
Có..bạn có thể! Thêm nguồn function_name vào tập lệnh của bạn. Tôi thích tạo biến eg.VAR = $ (funtion_name), nếu bạn thêm source function_name sau #!/Bin/bash thì kịch bản của bạn trước tiên thực hiện nhiệm vụ hàm đã nhập và sau đó tác vụ kịch bản lệnh hiện tại của bạn sẽ tốt hơn để tạo biến và sử dụng bất cứ nơi nào trong kịch bản. cảm ơn bạn..Hy vọng công việc của nó dành cho bạn :)
Tại sao bạn sao chép câu trả lời đã được đăng ... 8 năm trước? –
Để hiểu rõ hơn .. Tôi đã đăng một thời gian ngắn hơn trước đó. –
- 1. Từ khoá 'chức năng' được sử dụng trong một số tập lệnh bash là gì?
- 2. Sử dụng chức năng Chuyển qua chức năng khác nhau
- 3. Chạy chức năng bash theo lệnh su
- 4. Chức năng Bash -> Lệnh không được tìm thấy
- 5. Chức năng 'truy vấn' bảng tính google có thể được sử dụng trong tập lệnh google apps không?
- 6. Chức năng chạy bash với người dùng khác nhau
- 7. Lua - Cách sử dụng các chức năng từ tập lệnh khác
- 8. Loại mức văn bản - Không thể sử dụng các thông số được nhập khác nhau trong chức năng nhị phân
- 9. Sử dụng "màn hình thay thế" trong tập lệnh bash
- 10. "đang sử dụng" hai thư viện khác nhau có chức năng gần như giống hệt nhau
- 11. Không thể sử dụng flask.g để truy cập các biến trong các chức năng khác
- 12. Các nhãn goto tương tự được sử dụng trong tệp C nhưng các chức năng khác nhau
- 13. Phạm vi chức năng JavaScript giữa các thẻ tập lệnh
- 14. Đọc các tập lệnh xem khác nhau?
- 15. Tập lệnh Bash không được hiểu bởi Ubuntu Bash
- 16. Có thể sử dụng chức năng trong Handlebars #if không?
- 17. Có thể tham khảo các tập lệnh khác trong tệp tập lệnh TSQL không?
- 18. bash được xây dựng trong chức năng mã nguồn bash
- 19. Có thể sử dụng các chức năng được sử dụng thông qua các con trỏ hàm không?
- 20. Không thể đặt biến trong tập lệnh bash
- 21. Có công cụ nào xóa các chức năng không được sử dụng trong Python không?
- 22. Có phong cách tốt để gọi các lệnh bash trong một kịch bản Python sử dụng os.system ("bash code") không?
- 23. Tôi có thể đưa chức năng vào bên trong một chức năng khác không?
- 24. Python chức năng tương tự để bash tìm lệnh
- 25. con trỏ hàm chức năng khác nhau với các đối số khác nhau trong C
- 26. Chức năng nào được sử dụng để kiểm tra xem hai đối tượng có khác nhau không?
- 27. Tập lệnh để chạy các tập lệnh khác trong sqldeveloper
- 28. Làm cách nào tôi có thể lấy tên của tập lệnh được gọi là chức năng?
- 29. Áp dụng các chức năng khác nhau đến các mục khác nhau trong nhóm đối tượng: Python gấu trúc
- 30. Các nhóm Mulitprocess với các chức năng khác nhau
function.sh có thể ở bất kỳ đâu trong PATH của bạn. Nếu bash ở chế độ posix, nó sẽ không nhìn vào thư mục hiện tại. Điều này là tất cả được giải thích trong trang người đàn ông. – camh
True, tôi đã có nó trộn lẫn với những thứ khác. –
Giả sử 'function.sh' có một số mã trong đó. 'Function function.sh' sẽ thực thi mã? – user1527227