如何运行用户的别名
$ 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 中使用。PATH
grab
备选方案 2. 在 shell 的配置文件中创建一个函数
对于bash
,您可以在配置文件中定义一个函数~/.profile
:
grab () {
<actual code>
}
~/.profile
在您登录时读取。从现在开始,grab
将像一个内部 bash 命令一样,只需输入 即可访问grab
。它也可以在非交互式子 shell 中使用。