• Cygwin一键关闭mintty窗口函数:stopmintty(软关闭,非强制结束进程)


    stop-mintty,对所有mintty窗口发送关闭命令,Cygwin或WSL、MSYS2等环境均可用,非强制结束进程;
    好处在于:使用此函数关闭窗口前,Bash会自动将关闭的窗口执行过的命令写入历史文件.bash_history,方便下次重开窗口时进行历史命令搜索(上下箭头,Ctrl+R等),如果使用结束进程命令关闭窗口,本次窗口中运行过的历史命令是不会记录下来的。相当于对任务栏所有mintty窗口一一按下ctrl+D快捷键登出;


    此功能实现依赖第三方命令行工具cmdow:

    cmdow:
    https://ritchielawrence.github.io/cmdow/

    stop-mintty() {
    	#关闭Cygwin mintty窗口,软结束Cygwin mintty程序
    	#相比强制结束进程的好处,软结束进程退出前可以把当前窗口执行过的命令写入.bash_history,保留历史命令
    	#本程序退出所有Mintty窗口(有几个窗口就退出几个(等同于依次对窗口按键Ctrl+D))
    	#local winHandle=$(cmdow /T /F|dos2unix -q|iconv -f GBK -t UTF-8|grep 'mintty'|awk '{print $1}')
    	local winHandle=$(cmdow /T /F|dos2unix -q|iconv -f GBK -t UTF-8|grep 'mintty'|grep -v 'MINGW64:'|awk '{print $1}') #排除 Git Bash窗口
    	local selfWindow=""
    	for win in ${winHandle[@]};
    	do 
    		#数组第一个句柄刚好是当前执行命令的窗口,故应放在流程最后发送关闭指令
    		if [ -z "$selfWindow" ];then
    			selfWindow="$win"
    		else
    			echo "关闭窗口句柄: $win"
    			cmdow $win /CLS
    		fi
    	done
    	#以下对最后一个mintty窗口(当前执行stop-mintty命令的窗口)进行操作!
    	#[ ! -z "$selfWindow" ] && cmdow $selfWindow /CLS #如果使用这行会弹出窗口被进程cmdow占用,是否强制退出;
    	[ ! -z "$selfWindow" ] && cmd /c start cmdow $selfWindow /CLS #使用cmd启动新进程,绕过最后一个mintty窗口进程占用提示(不提示,直接退出);
    }
    

    运行效果:

  • 相关阅读:
    Hive on Spark
    Mongodb添加副本及修改优先级
    RabbitMQ与Spring集成
    最简单的图文教程,几步完成Git的公私钥配置
    Idea Ant 打开发包
    Spring Web 项目Junit测试报错问题
    阿里云maven仓库地址,速度提升100倍
    Spring boot 学习
    JAVA开发常用工具包
    从无到有搭建SSM框架
  • 原文地址:https://www.cnblogs.com/cnhack/p/16020160.html
Copyright © 2020-2023  润新知