繁体   English   中英

如何一次将参数传递给bash和fish中的别名/函数

[英]How to pass argument to alias/function in bash and fish at once

我的问题非常类似于: 如何将命令行参数传递给Shell别名?

我想创建将接受参数的别名。 以上问题的人建议了功能,而实际上这是解决方案。

但是,我立即使用鱼(Friendly Interactive SHell)和bash。 我将所有自定义别名保存在单个文件中,无论使用鱼还是bash都可以加载。

我知道如何在bash中创建别名/功能,也知道如何在fish中创建别名/功能。 我不知道如何为鱼和bash同时创建别名/功能。

它不必是别名/功能(它可以是前卫的技巧),只是最终效果应该像预期的那样起作用。

别名rmi =“ function _rmi(){docker ps -a | grep $ 1 | awk'{print $ 1}''| xargs --no-run-if-empty docker rm -f; docker images | grep $ 1 | awk'{print $ 3}'| xargs --no-run-if-empty docker rmi -f}; _rmi()“

bash可以接受以上一项,但不接受鱼。

功能转到sudo服务$ argv重新启动结束

以上被鱼所接受,但现在重击。

别名apts =“ aptitude search”

bash和fish都接受上面的普通别名,但是参数不能在内部(必须在末尾)。

如何统一呢?

没有适当的一般解决方案,鱼与bash不兼容。

另外, alias something="function"也是不必要的。 您可以直接定义函数。

如果您希望执行的操作没有更改外壳内部状态的任何内容,则可以编写一个脚本。

例如,创建一个名为“ rmi”的文件,其中包含

#!/bin/bash
docker ps -a | grep $1 | awk '{print $1}' | xargs --no-run-if-empty docker rm -f
docker images | grep $1 | awk '{print $3}' | xargs --no-run-if-empty docker rmi -f

$ PATH中的某个位置(包括bash和fish)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM