Linux操作系统base64命令操作案例,并解决-bash: !: event not found的问题

最近在编写自动化shell脚本,为实现简易的用户/密码/数据加密,防止直接的明文显示,使用base64编码算法进行数据转化

短字符串转码/解码测试
正常转码(经测试,加单引号、双引号或者不加引号的结果):


[root@db5 ~]# echo 123456 | base64
MTIzNDU2Cg==
[root@db5 ~]# echo '123456' | base64
MTIzNDU2Cg==
[root@db5 ~]# echo "123456" | base64
MTIzNDU2Cg==
正常解码:
[root@db5 ~]# echo MTIzNDU2Cg== | base64 -d
123456
[root@db5 ~]# echo 'MTIzNDU2Cg==' | base64 -d
123456
[root@db5 ~]# echo "MTIzNDU2Cg==" | base64 -d
123456

长字符串转码/解码测试(建议使用双引号,文中会出现单引号等字符,解析成字符串)
正常转码:


[root@db5 ~]# echo "May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’soes.If you feel that it hurts you,it probably hurts the other person, too." | base64
TWF5IHlvdSBoYXZlIGVub3VnaCBoYXBwaW5lc3MgdG8gbWFrZSB5b3Ugc3dlZXQsZW5vdWdoIHRy
aWFscyB0byBtYWtlIHlvdSBzdHJvbmcsZW5vdWdoIHNvcnJvdyB0byBrZWVwIHlvdSBodW1hbixl
bm91Z2ggaG9wZSB0byBtYWtlIHlvdSBoYXBweT8gQWx3YXlzIHB1dCB5b3Vyc2VsZiBpbiBvdGhl
cnPigJlzaG9lcy5JZiB5b3UgZmVlbCB0aGF0IGl0IGh1cnRzIHlvdSxpdCBwcm9iYWJseSBodXJ0
cyB0aGUgb3RoZXIgcGVyc29uLCB0b28uCg==

正常解码:


[root@db5 ~]# echo "TWF5IHlvdSBoYXZlIGVub3VnaCBoYXBwaW5lc3MgdG8gbWFrZSB5b3Ugc3dlZXQsZW5vdWdoIHRy
> aWFscyB0byBtYWtlIHlvdSBzdHJvbmcsZW5vdWdoIHNvcnJvdyB0byBrZWVwIHlvdSBodW1hbixl
> bm91Z2ggaG9wZSB0byBtYWtlIHlvdSBoYXBweT8gQWx3YXlzIHB1dCB5b3Vyc2VsZiBpbiBvdGhl
> cnPigJlzaG9lcy5JZiB5b3UgZmVlbCB0aGF0IGl0IGh1cnRzIHlvdSxpdCBwcm9iYWJseSBodXJ0
> cyB0aGUgb3RoZXIgcGVyc29uLCB0b28uCg==" | base64 -d
May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’shoes.If you feel that it hurts you,it probably hurts the other person, too.

长字符串转码指定—wrap参数测试 **
转码时指定—wrap=0参数,转码后不换行


[root@db5 ~]# echo "May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’ses.If you feel that it hurts you,it probably hurts the other person, too." | base64 --wrap=0
TWF5IHlvdSBoYXZlIGVub3VnaCBoYXBwaW5lc3MgdG8gbWFrZSB5b3Ugc3dlZXQsZW5vdWdoIHRyaWFscyB0byBtYWtlIHlvdSBzdHJvbmcsZW5vdWdoIHNvcnJvdyB0byBrZWVwIHlvdSBodW1hbixlbm91Z2ggaG9wZSB0byBtYWtlIHlvdSBoYXBweT8gQWx3YXlzIHB1dCB5b3Vyc2VsZiBpbiBvdGhlcnPigJlzb2VzLklmIHlvdSBmZWVsIHRoYXQgaXQgaHVydHMgeW91LGl0IHByb2JhYmx5IGh1cnRzIHRoZSBvdGhlciBwZXJzb24sIHRvby4K[root@db5 ~]#

正常解码:


[root@db5 ~]# echo "TWF5IHlvdSBoYXZlIGVub3VnaCBoYXBwaW5lc3MgdG8gbWFrZSB5b3Ugc3dlZXQsZW5vdWdoIHRyaWFscyB0byBtYWtlIHlvdSBzdHJvbmcsZW5vdWdoIHNvcnJvdyB0byBrZWVwIHlvdSBodW1hbixlbm91Z2ggaG9wZSB0byBtYWtlIHlvdSBoYXBweT8gQWx3YXlzIHB1dCB5b3Vyc2VsZiBpbiBvdGhlcnPigJlzb2VzLklmIHlvdSBmZWVsIHRoYXQgaXQgaHVydHMgeW91LGl0IHByb2JhYmx5IGh1cnRzIHRoZSBvdGhlciBwZXJzb24sIHRvby4K" | base64 -d
May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’soes.If you feel that it hurts you,it probably hurts the other person, too.

这里说明对长字符串转码,通过换行参数,明确第N个字符后换行(或者不换行),可以得出不同的转码结果。但是对不同转码值进行解码后的结果是一致的,都是原字符串。

特殊字符转码/解码测试 **
如果是一个特殊字符


[root@db5 ~]# echo ! | base64
IQo=
[root@db5 ~]# echo '!' | base64
IQo=
[root@db5 ~]# echo "!" | base64
-bash: !: event not found
如果是多个特殊字符
[root@db5 ~]# echo !@ | base64
-bash: !@: event not found
[root@db5 ~]# echo '!@' | base64
IUAK
[root@db5 ~]# echo "!@" | base64
-bash: !@: event not found

这里说明对特殊字符进行转码时,应该使用单引号。

解决-bash: !: event not found的问题
为了解决-bash: !: event not found的问题,可以执行set +H命令(set命令 参数:-H Shell  可利用”!”加 的方式来执行history中记录的指令。)


[root@db5 ~]# echo "!" | base64
-bash: !: event not found
[root@db5 ~]# echo !@ | base64
-bash: !@: event not found
[root@db5 ~]# echo "!@" | base64
-bash: !@: event not found
[root@db5 ~]# set +H
[root@db5 ~]# echo "!" | base64
IQo=
[root@db5 ~]# echo !@ | base64
IUAK
[root@db5 ~]# echo "!@" | base64
IUAK

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31394774/viewspace-2286173/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31394774/viewspace-2286173/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值