在 bash CLI 中运行用户别名失败

在 bash CLI 中运行用户别名失败

如何运行用户的别名

$ grab 'man'

但就像在 CLI 中一样

$ bash -c "grab 'man'"
bash: line 1: grab: command not found

请展示修复方法

答案1

别名仅供交互使用。当您尝试从使用该bash -c命令启动的非交互 shell 中运行它们时,它不会生效。

如果您希望自定义命令在非交互式 shell 中可用,则有两种方法。

替代方案 1. 在 PATH 目录中创建脚本

例如,创建一个~/.local/bin/grab执行长命令的脚本。目录存在时~/.local/bin/会自动包含在中,因此您只需键入即可运行此脚本。它也可以在非交互式子 shell 中使用。PATHgrab

备选方案 2. 在 shell 的配置文件中创建一个函数

对于bash,您可以在配置文件中定义一个函数~/.profile

grab () {
<actual code>
}

~/.profile在您登录时读取。从现在开始,grab将像一个内部 bash 命令一样,只需输入 即可访问grab。它也可以在非交互式子 shell 中使用。

相关内容