2012-07-13 29 views
26

Tôi thường sử dụng ps -elf | grep proceesname để có mô tả chi tiết về quy trình có tên processname. Tôi nghĩ rằng tôi phải viết quá nhiều cho việc này.Làm thế nào để tạo bí danh bash với đối số?

Bây giờ những gì tôi đã suy nghĩ là để tạo ra một bí danh bash như

alias lsps='ps -elf | grep $1' 

mà sẽ cung cấp cho các mô tả chi tiết trên chỉ bằng cách sử dụng lsps processname.

Vì vậy, câu hỏi của tôi là làm cách nào để tạo bí danh bash chấp nhận đối số.

PS: Tôi biết tôi có thể viết một kịch bản trình bao cho nhiệm vụ trên nhưng tôi chỉ tự hỏi làm thế nào để làm điều đó với bí danh bash.

+0

Bí danh đơn giản là không tranh luận. – chepner

+0

Đối với GNU 'ps', có lẽ tốt hơn nên nói' lsps() {ps -lf -C "$ 1"; } '. – Sorpigal

Trả lời

43

Rất đơn giản;

alias lsps='ps -elf | grep' 

đối số dòng lệnh sẽ được tự động thêm vào phần cuối của bí danh:

lsps arg1 arg2 arg3 => converted to => ps -elf | grep arg1 arg2 arg3 

Đó chỉ hoạt động khi bạn muốn thêm đối số đến hết bí danh.

Nếu bạn muốn nhận lập luận của alias bên trong dòng lệnh mở rộng bạn phải sử dụng chức năng:

Ví dụ:

lsps() 
{ 
    ps -elf | grep "$1" | grep -v grep 
} 

Chức năng cũng như bí danh có thể được lưu trong tập tin ~/.bashrc của bạn) hoặc tệp được bao gồm trong đó):

$ cat /tmp/.bash_aliases 
lsps() 
{ 
    ps -elf | grep "$1" | grep -v grep 
} 

$ . /tmp/.bash_aliases 
$ 
+0

Cảm ơn nó đã hoạt động. Nhưng nếu tôi phải tranh luận. – RanRag

+2

Chỉ sử dụng các chức năng trong trường hợp đó –

+0

Điều đó thật lạ. Có thể bạn đã thêm không gian bổ sung sau tên hàm (trong định nghĩa của nó). Tôi đã thêm ví dụ về cách sử dụng vào câu trả lời của tôi, vì bạn có thể thấy tất cả các công trình hoàn hảo. –

5

Sử dụng này:

alias lsps='ps -elf | grep' 

Sau đó, bạn có thể phát hành này:

lsps processname 
Các vấn đề liên quan