通过命令运行脚本
问题描述:
我试图在运行脚本时通过脚本解码密码,但似乎脚本正在运行时使用文字并且密码未处理。有没有更好的方法来做到这一点?通过命令运行脚本
#!/bin/bash
MYENC="Tk9UX1RIQVRfU1RVUElEX0xPTAo="
rdesktop -u FOO -d mgmt -p 'echo $(echo $MYENC) | base64 --decode' 192.0.0.0
我也试过只是传入一个变量,但也失败了。
答
试试这个:
#!/bin/bash
MYENC="Tk9UX1RIQVRfU1RVUElEX0xPTAo="
rdesktop -u FOO -d mgmt -p $(echo $MYENC | base64 --decode) 192.0.0.0
请注意,我在$(...)
包裹多汁的东西echo...base64...
。这被称为“命令替换” - 基本上,你告诉bash,你希望$(...)
内的代码在该行的其余部分之前执行,并将结果替换为它的位置。这里更多的信息:http://www.tldp.org/LDP/abs/html/commandsub.html
答
或者这
#!/bin/bash
MYENC="Tk9UX1RIQVRfU1RVUElEX0xPTAo="
rdesktop -u FOO -d mgmt -p $(base64 --decode <<< "$MYENC") 192.0.0.0
它的工作!谢谢 !!!!! – 2014-10-20 02:23:15
推荐使用'$(...)'代替反向引号。 – 2014-10-20 04:17:31