[英]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.