Vad*_*imo 3 linux shell command-line-interface shell-scripting
我正在使用命令行按照相同的模式手动执行相同的命令多次。现在我正在寻找一种方法来简化它,只需输入一次命令即可。
让我们看一个普通的 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
Run Code Online (Sandbox Code Playgroud)
此示例也适用于更多命令,例如 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
Run Code Online (Sandbox Code Playgroud)
像这样的东西已经存在了吗?我在谷歌上搜索它,但无法正确描述它,因此我没有找到任何东西。
您也可以自己定义一个函数,并将其包含在您的.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
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
user@host $ with git
git> status
# On branch master
nothing to commit (working directory clean)
git> exit
user@host $
Run Code Online (Sandbox Code Playgroud)
编辑:此功能不进行输入清理或任何操作,因此使用风险自负等...