Linux
尋找一種包裝命令並提供自己的外殼的方法
我正在使用命令行按照相同的模式多次手動執行相同的命令。現在我正在尋找一種通過只鍵入一次命令來簡化它的方法。
讓我們看一個普通的 docker 範例:
docker ps docker ps -a docker ps -l docker stop x docker start x docker start y docker logs y docker logs -f z
此範例還適用於更多命令,例如 git、brew、gulp、gcloud。
現在我正在尋找某種命令包裝器外殼,它允許我編寫
with docker
將任何命令包裝在嵌套/子外殼中的命令。然後我不需要添加
docker
命令,只需呼叫:>ps # does docker ps and displays result >stop x # prepends docker so docker stop x is actually executed CTRL+C # to exit the command wrapper
這樣的東西已經存在了嗎?我正在搜尋它,但無法正確描述它,因此我沒有找到任何東西。
您也可以自己定義一個函式,並將其包含在您的
.bash_profile
或類似的:function with { echo -n "$1> " while read input do if [[ $input == "exit" ]] then break fi eval "$1 $input" echo -n "$1> " done echo }
範例用法:
user@host $ with git git> status # On branch master nothing to commit (working directory clean) git> exit user@host $
編輯:此功能不做輸入消毒或任何事情,所以使用風險自負等…
您可以編寫 bash 或其他 shell 腳本來執行此操作。例如,一個幾乎同樣好的簡單替代方法就是定義短別名並添加它們
alias d=docker alias g=gcloud
等等。然後執行
d ps d ps -a
等等,這幾乎不比只輸入命令多。