Bạn có thích tập lệnh bash hoặc bí danh cho các phím tắt? [đóng cửa]


8

Tôi có một ~/binthư mục (nằm trên PATH) nơi tôi lưu trữ rất nhiều tập lệnh 1 hoặc 2 dòng nhỏ. Một số trong số họ chỉ cdvào một thư mục và chạy một lệnh trên một tập tin, như vimhoặc một cái gì đó. Nhưng tôi cũng có rất nhiều bí danh trong .bash_aliasestập tin của mình phục vụ cho cùng một mục đích.

Làm thế nào để bạn quyết định giữa việc viết một kịch bản bash nhỏ và viết một bí danh? Có vấn đề gì ở con đường bạn đi không?


Câu trả lời:


5

Nếu tôi sử dụng chúng thường xuyên đủ để đảm bảo chi phí cho việc tải chúng lên mọi vỏ. Tôi sẽ viết chúng lên như các chức năng.

Nếu chúng là dự án cụ thể, tôi có thể viết chúng thành một tập hợp các bí danh và hàm có thể được lấy vào một cái vỏ khi tôi đang làm việc trong dự án đó.

Chỉ khi họ làm việc theo cách độc lập thì mọi thứ mới được tạo thành kịch bản trong ~ / bin của tôi. Có một số lớp lót về cơ bản là bí danh, nhưng chúng là để chạy từ những nơi không phải là vỏ (chạy lời nhắc trong các chương trình khác chẳng hạn). Đối với hầu hết các phần họ phải là các kịch bản khá đáng kể.


1

Nói chung, các hàm shell script linh hoạt hơn các bí danh và bạn nên thích chúng hơn. Ví dụ: trong bí danh, bạn không thể kiểm tra xem số lượng đối số được cung cấp hoặc loại của chúng có được mong đợi hay không. Tôi đồng ý với Caleb rằng các bí danh rất phù hợp với một lớp lót đơn giản, ví dụalias cp='cp -i'


1

Đối với bất cứ điều gì phức tạp hơn, việc thay thế chuỗi của một lệnh đơn lẻ, một tập lệnh có thể phù hợp hơn. Ngoài ra, bất cứ điều gì sẽ được sử dụng bởi các tập lệnh khác hoặc có thể được sử dụng bởi những người khác có thể tốt hơn là tập lệnh. Mặc dù chạy các chương trình ra khỏi thư mục bin của người khác không phải là một ý tưởng tuyệt vời, nhưng tốt hơn là tìm nguồn cung cấp tệp bí danh cá nhân của ai đó.

Bí danh là tốt nhất để cá nhân hóa môi trường tương tác của bạn. Ví dụ, e='emacs -nw'và những thứ đó.


0

Tôi sử dụng cách tiếp cận đơn giản nhất có thể.

Chủ yếu, nếu lệnh không có tham số, tôi thường sử dụng bí danh.

Nếu lệnh có tham số tôi sử dụng một hàm.

ví dụ: tạo và cd'ing vào một thư mục:

md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }

Tôi cũng sử dụng một hàm nếu lệnh sử dụng một hàm được cài đặt mà chính nó có params

ví dụ: thêm -v vào git:

git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; }
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.