一个shell字符串特殊字符处理的小函数

来源:互联网 发布:mac原唱变伴奏 编辑:程序博客网 时间:2024/06/06 02:49

    当shell脚本的输入带有某些特殊字符时,变量的处理要特别小心,单引号,双引号的使用等等。由于前段时间要被密码输入搞疯掉了(sed 遇到&符时),所以这里博主写了一个shell函数,可以将特殊字符串转成16进制表示,方便一些特殊处理,算是提供一种思路吧!

   

codec_pass(){CODE_PASS=$1        HEX_PASS=""CODE_PASS=$(echo -n "$CODE_PASS" | od -A n -t x1)for ps in $CODE_PASS  # Add \x during loop    do        if [ $ps = "5c" ];then          # Add additional \ if met \     HEX_PASS=$HEX_PASS\\x5c\\x$ps        elif [ $ps = "26" ];then       # Add additional \ if met &             HEX_PASS=$HEX_PASS\\x5c\\x$ps        else                                  # Just add \x     HEX_PASS=$HEX_PASS\\x$ps        fidone}

如果输入是abC~`!@#$%^&*()-+?\|321
则输出是\x61\x62\x43\x7e\x60\x21\x40\x23\x24\x25\x5e\x26\x26\x2a\x28\x29\x2d\x2b\x3f\x5c\x5c\x7c\x33\x32\x31

需要还原成字符串?利用

echo -e 

就可以了。

欢迎各路大牛指点!



0 0
原创粉丝点击