Câu trả lời:
Bash không có tính năng như vậy. Zsh có, bạn có thể thiết lập bí danh dựa trên tiện ích mở rộng:
alias -s exe=mono
Điều này sẽ chỉ hoạt động trong một vỏ tương tác, tuy nhiên, không phải khi một chương trình gọi một chương trình khác.
Trong Linux, bạn có thể thiết lập thực thi các nhị phân nước ngoài thông qua cơ chế binfmt_misc ; xem Rolf Bjarne Kvinge . Các bản phân phối Linux tốt sẽ tự động thiết lập phần này như một phần của gói thời gian chạy đơn.
Nếu bạn không thể sử dụng binfmt_misc vì bạn không có quyền root, bạn sẽ phải giải quyết các tập lệnh trình bao bọc.
#!/bin/sh
exec /path/to/mono "$0.exe" "$@"
Đặt tập lệnh bao bọc trong cùng thư mục với .exe
tệp, có cùng tên mà không có .exe
.
Điều đó là có thể:
Trở thành root và bật mô-đun binfmt trong kernel của bạn bằng lệnh này (bạn có thể muốn thêm lệnh này vào tập lệnh khởi động /etc/rc.local của mình, để nó sẽ được thực thi khi khởi động):
modprobe binfmt
Thêm dòng dưới đây vào tập tin / etc / fstab của bạn:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Sau đó, yêu cầu hệ thống của bạn chạy lệnh sau khi khởi động:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Đảm bảo đánh dấu các tệp .exe của bạn là có thể thực thi được trong hệ thống tệp:
chmod +x myprogram.exe
(từ đây: http://mono-project.com/Guide )
Lưu ý rằng đây không phải là cách được đề xuất, hãy đọc trang Hướng dẫn được đề cập ở trên và cũng là trang về cách thực hiện triển khai ứng dụng cho các ứng dụng đơn.
Bạn có thể nhúng tệp vào trong tập lệnh bash bằng hướng dẫn sau http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts