Как создать псевдоним bash с аргументом?
Обычно я использую ps -elf | grep proceesname
, чтобы получить подробное описание процесса с именем processname
. Я думаю, что я должен написать слишком много для этого.
Теперь я решил создать псевдоним bash, например
alias lsps='ps -elf | grep $1'
который даст приведенное выше подробное описание только с помощью lsps processname
.
Итак, мой вопрос заключается в том, как создать псевдоним bash, который принимает аргумент.
PS: Я знаю, что я могу написать оболочку script для вышеуказанной задачи, но мне было просто интересно, как это сделать с помощью псевдонима bash.
Ответы
Ответ 1
Очень просто:
alias lsps='ps -elf | grep'
Аргументы командной строки будут добавлены автоматически в конец псевдонима:
lsps arg1 arg2 arg3 => converted to => ps -elf | grep arg1 arg2 arg3
Это работает только тогда, когда вы хотите добавить аргументы в конец псевдонима.
Если вы хотите получить аргументы псевдонима внутри расширенной командной строки, вы должны использовать функции:
Например:
lsps()
{
ps -elf | grep "$1" | grep -v grep
}
Функции, а также псевдонимы могут быть сохранены в вашем файле ~/.bashrc
) или файл, который входит в него):
$ cat /tmp/.bash_aliases
lsps()
{
ps -elf | grep "$1" | grep -v grep
}
$ . /tmp/.bash_aliases
$
Ответ 2
Используйте это:
alias lsps='ps -elf | grep'
Затем вы можете сделать это:
lsps processname