Допустим, я хочу изменить исходное поведение ls
инструмента следующим образом:
$ ls
Hello World
file1 file2 ...
Как я могу это сделать?
При запуске ls
я хотел бы запустить другую команду, скажем echo "Hello World!"
.
Быстрое решение, которое я вижу, использует псевдоним:
alias orig_ls="ls"
alias ls='echo "Hello World!"'
Тем не менее, это не реальное решение, так как, когда я буду работать, orig_ls
он будет выводить "Hello World!"
.
bash
shell
command-line
alias
Ионика Бизэу
источник
источник
Ответы:
Иногда псевдоним не достаточно мощный, чтобы легко делать то, что вы хотите, поэтому вот способ, не используя их.
В некоторый файл, который получен при запуске вашей оболочки (например,
.bashrc
), добавьте следующую функцию:В отличие от псевдонима, функция может возвращаться. Вот почему
command ls
используется вместоls
; он говорит вашей оболочке использовать фактическуюls
вместо функции, которую вы только что определили.источник
command
альтернатива для OS X?command
, не сработало: / Я понятия не имею, и у меня нет Mac, с которым можно проверить его, извините.Вы не должны забывать звонить
ls
:источник
&
действительно, но я не получаю аргумент, который вы приводите из этого.