Псевдоним с переменной в bash
Я хочу создать псевдоним в bash
следующим образом:
alias tail_ls="ls -l $1 | tail"
Таким образом, если кто-то типа:
tail_ls /etc/
он отобразит только 10 последних файлов в каталоге.
Но $1
, похоже, не работает для меня. Можно ли каким-либо образом ввести переменные в bash.
Ответы
Ответ 1
Я бы создал функцию для этого, а не псевдоним, а затем экспортировал его, например:
function tail_ls { ls -l "$1" | tail; }
export -f tail_ls
Примечание -f
переключиться на export
: он сообщает, что вы экспортируете функцию. Поместите это в свой .bashrc
, и вам хорошо идти.
Ответ 2
Решение @maxim-sloyko не работает, но если следующее:
исходный источник: http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm
Ответ 3
alias tail_ls='_tail_ls() { ls -l "$1" | tail ;}; _tail_ls'
Ответ 4
tail_ls() { ls -l "$1" | tail; }
Ответ 5
Если вы используете оболочку Fish (от http://fishshell.com) вместо bash, они пишут функции несколько иначе.
Вам нужно добавить что-то вроде этого к вашему ~/.config/fish/config.fish
, что эквивалентно вашему ~/.bashrc
function tail_ls
ls -l $1 | tail
end
Ответ 6
Вы можете определить $1
с помощью set
, а затем использовать свой псевдоним, как предполагалось:
$ alias tail_ls='ls -l "$1" | tail'
$ set mydir
$ tail_ls