コマンドラインから直接プログラムを実行するための選択メニューのエコオプション

コマンドラインから直接プログラムを実行するための選択メニューのエコオプション

選択して特定のプログラムを実行するとき

  1. これを行う
  2. 太陽
  3. 別のことをする

最終サブ選択入力ウェブサイト:資格情報入力:

次のことをしたい

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

しかし、これはうまくいきません。選択メニューをバイパスし、コマンドラインから直接Commandoを実行する他の方法はありますか?結局、PowerShell / CMDとBashも使用しますか?

更新:私が望むものが何であるかを理解していない人のために、次の例を説明します。

example.shを実行すると、選択メニューが表示され、何かに到達するには手動で選択を入力する必要があります。このようにユーザー入力を提供したくないので、これは私が望むものではありません。

エコーを使用してユーザー入力を提供するオプションがあるかどうかわかりません。しかし、これは私の問題です。

ユーザーの選択を要求せずに直接選択を実行できるように、example.shの選択をエコーし​​たいと思います。

答え1

結局、PowerShell / CMDとBashも使用しますか?

それらは非常に異なり、両方の環境で合理的なタスクが見つからないため、WindowsシステムのプログラミングSEではないので、bashタスクに集中します。

次のことをしたい

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

関連情報