bash 脚本不起作用

bash 脚本不起作用

我在家里的 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

相关内容