Как определить псевдоним с переменными, которые можно изменять во время выполнения?

Как определить псевдоним с переменными, которые можно изменять во время выполнения?

На этот вопрос, вероятно, очень легко ответить, но мне не удалось найти ни одного вопроса, в котором уже задавался бы этот вопрос, из-за различий в формулировках при написании заголовков.

Запуск help aliasмоей командной строки bash возвращает только это:

alias: alias [-p] [name[=value] ... ] 

Затем очень короткий текст, не имеющий никакого отношения к тому, о чем я спрашиваю.

Я также попробовал:

help function

Но и это не дало мне много информации.

Например:

 alias mancat="man command | cat"

Чтобы я мог запустить mancat grep, что было бы эквивалентно man grep | cat.

Я знаю, что это называется переменными, но они не определены, и я хотел бы иметь возможность изменять их в любое время, как при запуске моей команды-примера.

решение1

Вам нужно использовать функцию, а не псевдоним, так что

mancat () { man "$1" | cat ; }
mancat grep

сделаю то, что вы хотите.

Сходным образом

mygrep () { "$1" "$3" "$2" | "$1" -v "$4" | "$5" -n1; }
mygrep grep pattern1 file pattern2 head
mygrep grep pattern1 file pattern2 tail

будет grepfor pattern1в fileи затем выберет только строки, которые не совпадают pattern2( grep -v), а в конце выберет только первую (или последнюю) строку.

Связанный контент