将选项回显到选择菜单以直接从命令行运行程序

将选项回显到选择菜单以直接从命令行运行程序

当我运行带有选择的特定程序时

  1. 做这个
  2. 去做
  3. 做点别的事

最终的子选择输入网站:输入凭据:

我想做以下事情

echo {choice} | echo {choice2} | echo {choice3} | program

然而这不起作用。是否有替代方法可以绕过选择菜单直接从命令行执行突击队。最终也使用 PowerShell/CMD 和 Bash 吗?

更新:对于那些不明白我想要什么的人,让我用下面的例子解释一下:

如果我执行 example.sh 我会得到一个选择菜单,并且必须手动输入选择才能获得某些内容。这不是我想要的,因为我不想以这种方式提供用户输入。

我不知道是否有一个选项可以通过使用 echo 来提供用户输入。但这是我的问题。

我想回显 example.sh 的选择,这样它将直接执行选择,而不提示我用户选择。

答案1

最终也使用 PowerShell/CMD 和 Bash 吗?

它们有很大的不同,您找不到在这两种环境中都可以做的明智的事情,所以让我们重点关注 bash 上的工作,因为这不是 Windows 系统编程 SE。

我想做以下事情

echo {choice} | echo {choice2} | echo {choice3} | program

你不会,因为那不是方法,echo也不是|工作方式。

您想要使用select内置的 bash,如中所述答案,或dialog如图所示的程序,例如这里

这两个选项都不是 powershell 的选项。我确信 powershell 有它自己的方式来做出多项选择提示。

答案2

我找到了问题的解决方案。这是由于对标准输入的错误操作造成的。

这可以通过某些程序来完成,但并不适用于每个程序。

例子有:

printf "command1\ncommand2\ncommand3" | commandyouwanttoexecute

一种更简洁的方式来阅读此内容而不是使用 \n 函数:

(echo command1; echo command2; echo command3;) | cat | commandyouwantoexecute

最后一种方法是使用多行:

cat <<EOF | commandyouwanttoexecute
command1
command2
...
EOF

对于使用 CMD 或 PowerShell 的 Windows,可以通过封装 echo 命令并使用 && 执行多个 echo 命令来完成:

(echo "test" && echo "test") | powershell

相关内容