bash - 将参数传递给 bash 别名
问题描述
我似乎无法创建一个接受参数的 bash 别名。这是我放入 .bashrc 文件的内容:
别名测试='历史 | grep "$1"
这是我在终端中输入的内容:
测试历史
这就是我得到的:
grep:历史:没有这样的文件或目录
我怎样才能解决这个问题?
解决方案
bashalias
不允许直接使用参数(位置参数)。您可以通过声明一个函数然后为该函数起别名来获取参数。
在你的情况下,你可以做(在你的.bashrc
):
showhist() {
[ -z "$1" ] && { printf "usage: hist <search term>\n"; return 1; }
history | grep "$1"
return 0
}
其次是:
alias hist='showhist'
然后只需hist searchterm
在命令行上使用。
推荐阅读
- angularjs - 如何从剪贴板复制到空白 ag-grid(网格中没有行)
- c# - 当我在瀑布对话框中使用自适应卡片的输入形式时,ContinueDialogAsync 不起作用
- kubernetes - 哪种方案可以从 GCP 中的 VM 分离静态外部 IP
- react-native - React-native 0.60 - Android 构建发布失败 - OutOfMemory
- java - 从 java StringBuilder 中删除子字符串
- node.js - Electron:如何使用电子从 node.js 调用所有 OS windows/macOS/Linux 的 COM 对象,例如 Excel.Application/ Outlook.Application?
- java - 微服务中实体类之间的关系
- html - 如何将 Bootstrap 的网格系统应用于表单布局?
- python-3.x - 尝试使用 boto3/python3 创建 AWS 实例时,获取“(不支持的)RunInstances 操作
- java - 当一个类实现另一个接口时,它的子类是否也会隐式地实现该接口?