Bí danh một lệnh để chạy trong nền


25

Tôi muốn một phím tắt để làm việc như vậy:

> e foo.txt

để mở rộng như

> emacs foo.txt &

Thật đơn giản để sử dụng alias e=emacs, nhưng làm cách nào để chèn tên &sau? Tôi nhận ra rằng có thể không thể sử dụng chỉ alias, vì vậy tôi sẽ chấp nhận bất kỳ giải pháp bash nào. Nếu một kịch bản shell là cần thiết xin vui lòng giải thích cách nó hoạt động.


4
Bạn nên sử dụng emacsclienthoặc gnuclientđể mở tệp từ dòng lệnh thay vì mở emacstệp mới cho mỗi tệp: emacswiki.org/emacs/EmacsClient
andcoz

Câu trả lời:


38

Bí danh trong bash không thể có đối số, nhưng bạn có thể sử dụng các hàm.

e() { emacs "$@" & }

sau đó

e foo.txt

sẽ làm những gì bạn muốn.


1
Điều này có vấn đề khi tôi gõ e foo*vào một thư mục có cả hai foo.cppfoo.h, chỉ một trong các tệp sẽ mở.
Móc vào

4
@Hooked, sau đó sử dụng "$@"thay vì "$1"trong hàm.
AProgrammer

1
@AProgrammer dường như không hoạt động cho các ký tự đại diện. Cú pháp tôi đang sử dụng là: emacs $* &và một giải pháp thậm chí còn tốt hơn dường nhưe() { command emacs $* & disown }
tên
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.