我在家里的 bin 目录中编写了这个简单的类型别名脚本
#!/bin/sh
alias kp='ls –L'
alias ldir='ls –aF'
alias copy='cp'
并将其保存为 myenv。然后我使用
chmod +x /bin/myenv
然后使用命令执行它
myenv
但之后当我使用 kp 时,系统提示未找到 kp 命令。为什么?
答案1
您的脚本默认在子 shell 中运行。(它会打开一个新 shell 并运行您的脚本。脚本运行完成后,其修改的环境将被销毁。)
如果您想更改当前的 shell 环境设置,您必须:
source myenv
或者:
. myenv
看man bash
Shell 内置命令/来源。
答案2
首先,因为您在和–
中使用的字符与不同(您可以看到它稍长一些)。尝试: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。