我有一个程序,入口是shell脚本,里面把密码放入环境变量,并且调用了一个expect脚本,在expect里可以取到环境变量,但是这个except脚本又调用了个shell脚本,这个脚本里取不到环境变量,有没有办法在不明文传递密码的情况下,让这个except的子程序取到环境变量
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
在这种情况下,可以使用`export`命令将环境变量传递给子进程。`export`命令可以将当前shell中定义的变量传递给所有后续执行的程序,包括子进程。 下面是一个示例的解决方案:- 在shell脚本中定义并导出密码环境变量:
#!/bin/sh export PASSWORD="your_password" expect expect_script.exp
- 在expect脚本中读取环境变量并传递给子进程:
#!/usr/bin/expect set password $env(PASSWORD) spawn sh child_script.sh send "$password\r" expect eof
- 在子shell脚本中接收环境变量:
#!/bin/sh read -p "Enter password: " password echo "Password is: $password"
通过这种方法,可以将密码环境变量传递给expect的子进程,同时避免了在代码中明文传递密码的风险。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 联想笔记本开机出现系统更新界面
- ¥15 各位帮帮我 我不想重做系统
- ¥30 微信小程序蓝牙数据透传
- ¥15 加氢站氢负荷数据集来源
- ¥15 umi接入sentry遇到问题
- ¥15 HBuilderX打包H5网页,扫码模块无法使用
- ¥15 Javascript跳转页面后,无法执行后面代码,如何解决?
- ¥15 echarts绘制图表
- ¥15 请教两个关于高德地图定位不准的技术问题
- ¥15 根据企业名称 对照两个文件 样本筛选/匹配