用shell实现bat批处理的pause命令-追加改进


我参考了这个文章:用shell实现bat的pause

http://linux-wiki.cn/wiki/zh-hans/%E7%94%A8shell%E5%AE%9E%E7%8E%B0bat%E7%9A%84pause

文中提示:

#! /bin/bash
function pause(){
        read -n 1 -p "$*" INP
        if [ $INP != '' ] ; then
                echo -ne '\b \n'
        fi
}
#使用时:
pause 'Press any key to continue...'

仍存有的问题:

  • 对空格和Tab支持不好。
  • 重定向的问题没有解决。

我在此基础上:

  • 解决了对空格和Tab,回车键的解决
  • 将提示挪入到函数体内

仍存有的问题:

  • 对方向键支持不好。
  • 重定向的问题没有解决。(未发现未解决)

最终代码:

#! /bin/bash
function pause(){
        echo 'Press any key to continue...'
        read -n 1 -p "$*" str_inp
        if [ -z "$str_inp" ];then
                str_inp=1
        fi
        #echo "+$str_inp+"
        if [ $str_inp != '' ] ; then
                echo -ne '\b \n'
        fi
}
#使用时:不要用方向键
#pause 
pause

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM