如何安全的将密码传给exp脚本

使用exp的时候,经常需要传密码给脚本,但是如果直接通过传参的方式传递,会有通过ps打印的风险,因此需要使用管道符来避免别人通过ps获取敏感信息。


在shell脚本中:
echo $PASSWORD1 $PASSWORD2 | expect -f expectFile.exp $ARG1 $ARG2 >> LOG.FILE
更新:通过管道符依旧存在可能被ps打印的风险(会创建子线程),需要使用<<<重定向密码给expect命令以达到安全要求
在EXP脚本中:

#读取用户输入
expect_user -re "(.*)\n"
#将用户输入从buffer中取出
set pwd_line $expect_out(1,string)
#多个密码需要分割
set pwds [split "pwd_line" " "]
set PASSWORD1 [lindex $pwds 0]
set PASSWORD2 [lindex $pwds 1]
#获取参数:
set ARG1 [lindex $argv 0]
set ARG2 [lindex $argv 1]
#获取参数长度:
set arg_len [llength $argv]```

----
上面使用到的expect_out可以理解为缓存
$expect_out(0,string)匹配整个正则表达式的字符串
$expect_out(1..9,string) 匹配正则表达式模式中第1-9个()中的内容
上文使用(.*)\n匹配的是回车前所有输入,第一个模式匹配的就是除回车符之外的所有输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值