簡體   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