Я написал этот скрипт псевдонима простого типа в своем каталоге bin в доме
#!/bin/sh
alias kp='ls –L'
alias ldir='ls –aF'
alias copy='cp'
и сохранил его под именем myenv. Затем я изменил режим с помощью
chmod +x /bin/myenv
, затем выполнил его с помощью команды
myenv
, но после этого, когда я использую kp, он говорит, что команда kp не найдена. Почему?
Ваш скрипт по умолчанию работает в под-оболочке. (Он открывает новую оболочку и запускает ваш скрипт. После того, как скрипт завершит работу, его измененная среда будет уничтожена.)
Если вы хотите изменить текущие настройки среды оболочки, вам необходимо:
source myenv
или:
. myenv
См. man bash
Команды / источник создания оболочки .
Во-первых, потому что символ –
, который вы использовали в alias kp='ls –L'
и alias ldir='ls –aF'
, не совпадает с -
(вы можете видеть, что он немного длиннее). Попробуйте:
#!/bin/sh
alias kp='ls -L'
alias ldir='ls -aF'
alias copy='cp'
Просто скопируйте и вставьте сверху.
Во-вторых, если вы хотите, чтобы скрипт имел ожидаемый эффект, просто поместите эту строку в файл ~/.bashrc
:
source /bin/myenv
В любом случае лучший способ создать псевдонимы в Ubuntu - это метод: https://askubuntu.com/a/5278/147044 .