php エディター Apple は、Go でフォアグラウンドまたはバックグラウンドのシェル コマンドを実行する方法を紹介します。 Go 言語では、シェル コマンドの実行は非常に簡単です。 os/exec パッケージを使用すると、さまざまなシェル コマンドを簡単に実行し、その出力を取得できます。フォアグラウンド コマンドを実行するかバックグラウンド コマンドを実行するかに関係なく、Go 言語は対応するメソッドを提供します。この記事では、Go 言語を使用してフロント シェル コマンドまたはバックグラウンド シェル コマンドを実行する方法を学び、いくつかの一般的な使用例を検討します。はじめましょう!
goでは、ユーザーからシェルコマンドを実行でき、フォアグラウンドで実行されているコマンドのみをブロックできる必要があります(&
を使用して実行されるのではありません)。コマンドの出力を取得します。
たとえば、bash では次のことができます:
リーリー ユーザーは、sleep 5; echo hi
のようなフォアグラウンド コマンドを入力することもできますが、これはブロックされ、プロンプトはすぐには再表示されません。または、{ sleep 5; echo hi; のようなバックグラウンド コマンドを入力することもできます。 &
を実行するとブロックされず、コマンドがバックグラウンドで実行されている間、プロンプトがすぐに再表示されます。
Go で再作成するにはどうすればよいですか?これが私の試みです:
リーリー実行中の sleep 5; echo hi
はブロックされて機能しますが、 { sleep 5; echo hi; } &
エラー:
コンテキストとして、音声コントロールを移植しました。ユーザーは、コマンドがシェルを通じて実行され、入力出力のキーストロークをシミュレートする runtype
などのアクションを設定できます。ユーザーはバックグラウンド コマンドを使用して、コマンドに合わせて音声コントロールを続行できます。たとえば、「メニュー」と言ったときにメニューを起動し、メニューが開いている間も音声コントロールを使用できます。 menu: runtype printf %s\\ n あれやこれや | dメニュー &
。
この動作は、stdout を名前付きパイプに設定することで実現できます。
以上がGo でフォアグラウンドまたはバックグラウンドのシェル コマンドを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。