bash echo是否显示在ps中

时间:2014-02-22 00:55:16

标签: bash echo stdin ps

我正在尝试使用bash 脚本将敏感数据传递给stdin。 我想知道我是否可以使用

echo "This is verysecretmessage" | IamAwaitingStdin

我认为,由于echo内嵌/bin/bash它不应该显示在ps或其他任何地方,这是正确的吗?

如果没有,例如,这将是而不是上面的解决方案

IamAwaitingStdin <<EOF
This is verysecretmessage
EOF

那么在用()封装它时如何在bash脚本中使用<<EOF bla bla EOF语法?语法是什么?

我猜这个不正确,因为bash是单行

$(IamAwaitingStdin << EOF
This is verysecretmessage
EOF)

谢谢!

1 个答案:

答案 0 :(得分:2)

  1. 你是正确的echo没有创建一个单独的进程。新流程的名称将来自管道的另一端。

  2. $( ... )带有here-document的示例可以正常工作 - 大多数bash结构可以跨越多行,即使它们通常不会。 (最多可能需要使用\转义一些嵌入式换行符,但在$( ... )内,即使这不是必需的。)

  3. 您也可以使用herestring而不是heredoc:

    IamAwaitingStdin <<<"This is verysecretmessage"