Bash:写入另一个进程的输入流

时间:2018-02-13 10:22:01

标签: bash

我有一个脚本从输入流中读取变量(不是pid = 1的标准)。

#!/bin/sh

read u p

if [ "$u" == "user" -a "$p" == "pass" ]; then
  echo 'This works'
  exit 0
fi

我想将up从另一个脚本传递到上述脚本的输入流。有什么建议?提前谢谢。

3 个答案:

答案 0 :(得分:2)

您可以使用|(管道)。 E.g:

$ echo uu pp | bash -c 'read u p; echo $u $p'
uu pp
$

答案 1 :(得分:2)

一个解决方案:

1st_script 

输出:

userX passX

所以使用unix管道|

./1st_script | ./2th_script

您的脚本无需更改

答案 2 :(得分:1)

您可以使用process substitution

#!/usr/bin/env bash

read -r u p < <(./some_script)
[[ $u = "user" && $p = "pass" ]] && echo "OK"