zoukankan      html  css  js  c++  java
  • 【转】bash shell退格键乱码

    转自:http://share.blog.51cto.com/278008/583382

    我写了一个非常简单的脚本,用于上传某个文件到hadoop中hdfs的某个目录。在输入文件名称或目录名称时,有时候会输错,需要删除错误输入,但在敲退格键时时出现乱码^H,每按一下退格键就会出现一个^H。
        搜索网上资料,参考了如下网页,得到解决办法:http://hi.baidu.com/moonlight_bupt/blog/item/1b6a7acc5435c00700e928df.html,它提供了两个方法:
      一是,在敲退格键时,同时按住ctrl键;
      二是,修改.bash_profile文件:
         a)在bash下:$ stty erase ^?
         或者把 stty erase ^? 添加到.bash_profile中。
        b) 在csh下:$ stty erase ^H
         或者把 stty erase ^H 添加到.cshrc中。
         stty erase "^H"

        我两个方法都试验了一下,第一个方法没有问题,但在试验第二个方法时,出了问题,如下:
        我的默认shell是bash,脚本中调用的也是bash。我在.bash_profile中写入$ stty erase ^?,但根本没有效果!于是写入stty erase "^H",这才有效果
        后来仔细观察了一下,我在bash中敲退格键时出现^H,而这个字符应该是csh中出现的东西!不知道这个诡异的现象是怎么来的。
     
    附脚本:
    #!/bin/bash 
    #2011-06-07 by qinshan.li
    #
    echo -n "Type your path: " 
    read path 
    ~/hadoop-0.20.2-CDH3B4/bin/hadoop fs -mkdir ${path} 
    if [[ "$?" = "0" ]]; then 
    echo -e "$(date "+%T") : Create directory successfully! " 
    else 
    echo -e "$(date "+%T") : Create directory failed! " 
    fi 
     
    echo -n "Type your file to upload: " 
    read file 
    ~/hadoop-0.20.2-CDH3B4/bin/hadoop fs -moveFromLocal ${file} ${path} 
    if [[ "$?" = "0" ]]; then 
    echo -e "$(date "+%T") : Uploaded successfully! " 
    else 
    echo -e "$(date "+%T") : Uploaded failed! " 
    fi 
    
  • 相关阅读:
    MongoDb 快速入门教程
    读书应该是件快乐的事
    图灵机 快速入门教程
    开源项目 —— 中国行政区划数据
    MySQL用户管理:添加用户、授权、删除用户
    Java 图片处理解决方案:ImageMagick 快速入门教程
    FTP弱口令猜解【python脚本】
    Telnet弱口令猜解【Python脚本】
    PHPMyAdmin弱口令猜解【Python脚本】
    WebLogic口令猜解工具【Python脚本】
  • 原文地址:https://www.cnblogs.com/fzzl/p/2947759.html
Copyright © 2011-2022 走看看