首页 > 解决方案 > 在脚本上加载变量时如何删除脚本输出中的垃圾数据?

问题描述

在 bash 上使用脚本时,我想加载一个秘密值,比如密码。我发现这种从文件加载而不是在 bash 配置文件上导出的方法。

我写了这个示例脚本来测试它

cat -n run.sh
 1  echo $val1
 2  echo "-line1----"
 3  set -o
 4  source /tmp/jas/test.txt
 5  set +o
 6  echo $val1
 7  echo $val2
 8  echo "--line2---"
 9  echo $val2

似乎它工作得很好,但是当我运行脚本时,我看到输出为


-line1----
allexport       off
braceexpand     on
emacs           off
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      off
history         off
ignoreeof       off
interactive-comments    on
keyword         off
monitor         off
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off
set +o allexport
set -o braceexpand
set +o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set +o histexpand
set +o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set +o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace
value1
value2
--line2---
value2

有人可以帮我吗

  1. 屏幕上的那些价值观或建议是什么?运行脚本时如何忽略它们?
  2. 脚本完成后,按照我尝试过的命令
$echo $val1

并没有结果。所以它似乎只在脚本上工作和使用。但我觉得这是一个不同级别的安全问题,一个人知道文件的路径可以读取平面文本中的值。有没有更好的办法?

标签: bashenvironment-variables

解决方案


推荐阅读