【发布时间】:2014-07-31 11:37:52
【问题描述】:
我在我的 bash 脚本中使用 perl one liner,
为了从脚本中删除密码(因为安全问题,当我们想从脚本中删除密码时,这是一个不错的解决方案)
问题是当我运行 bash 脚本时,perl 一行删除了他的一行,
后面的词:export PASSORD=
请告知需要在 perl 一行中更新什么,以便忽略删除 perl 行中的单词?
remark - export ... 行不在行的开头
perl 我脚本中的一行:
perl -i -pe 's/(?<=export PASSORD=).*//' /tmp/script.bash
我们运行之前的脚本
more /tmp/script.bash
#!/bin/bash
export LOGIN=root
export PASSORD=JH&*(@%VTVTB
/var/cti/download_password.ksh $PASSORD $LOGIN
perl -i -pe 's/(?<=export PASSORD=).*//' /tmp/script.bash
我们运行后的脚本
more /tmp/script.bash
#!/bin/bash
export LOGIN=root
export PASSORD=
/var/cti/download_password.ksh $PASSORD $LOGIN
perl -i -pe 's/(?<=export PASSORD=
【问题讨论】:
-
perl -i -pe 's/(?<=export PASSORD=剩下的部分呢? -
perl 行删除它行本身(这是问题)
-
你不是已经问过这个问题了吗? stackoverflow.com/questions/24064853/…
-
这是diff问题,因为这是diff问题
-
我想问题是为什么你在运行这个文件后关心它的状态。如果它如此重要,为什么它在 /tmp 中?