【问题标题】:Concatenating commands in linuxlinux中的连接命令
【发布时间】:2017-12-01 14:27:02
【问题描述】:

我想在 linux 终端中启动一个进程,它会在 2 秒后询问用户名和密码。

如何进行流程调用,然后在脚本中发送这些凭据? 我知道我应该使用 echo 和 &&,但问题是第一个进程没有完成,因此我无法使用 && 连接命令。

谢谢

【问题讨论】:

  • sleep 2 && echo I ask for username and password
  • 我不明白...你能解释一下吗?
  • 进程真的需要启动然后等待 2 秒吗?由于您已经启动了它,它应该占用您正在运行它的终端,并且应该自己接受输入,而不是您的 scipt。并不是说这不可能,但如果你提供了一些上下文以及你需要它的原因(让我们相信这不仅仅是 XY 问题),那么有人可能会真正提供帮助
  • 这不是您应该尝试通过在 2 秒后发送凭据来解决的问题。您应该查看程序手册并了解如何以编程方式传递凭据。

标签: linux shell scripting


【解决方案1】:

如果第一个进程尚未完成,您需要并行运行这些命令。您可以通过使用& 运算符将第一个进程发送到后台来完成此操作。将凭据发送到第一个进程应该是一个不同的问题。您应该调查“进程间通信”。

一种选择是将凭据写入第一个进程可以读取的文件。

#!/bin/bash

process_that_needs_credentials &  # start in the background
# the script will continue immediately

sleep 2
read -rp "username: " username
read -rp "password: " password

(
  echo "$username"
  echo "$password"
) > credentials.txt

【讨论】:

    猜你喜欢
    • 2019-06-17
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多