Go から Bash スクリプトを実行する
課題
Go から bash スクリプトを実行するには、os/exec パッケージを使用しようとしましたが、スクリプト パスまたはそのパスの入力で問題が発生しました。コンテンツを引数として指定します。このスクリプトは変数を設定し、特定のタスクを実行します。
解決策
Go から bash スクリプトを正常に実行するには、次の手順を検討してください:
前提条件
OS を使用する/exec パッケージ
os/exec を使用したい場合は、コードを次のように変更します。
cmd := exec.Command("/bin/sh", mongoToCsvSH) out, err := cmd.Output()
ここで、「/bin/sh」はスクリプトを実行するインタープリタを示し、その後に bash スクリプト mongoToCsvSH へのパスが続きます。
代替アプローチ
os/exec を使用する代わりに、次のコードを利用して、 script:
import ( "io/ioutil" "os" ) func main() { content, err := ioutil.ReadFile("mongoToCsvSH.sh") if err != nil { log.Fatal(err) } err = os.WriteFile("run.sh", content, 0755) if err != nil { log.Fatal(err) } cmd := exec.Command("./run.sh") cmd.Run() }
このアプローチでは、bash スクリプトの内容を読み取り、実行可能権限 (chmod 0755) を使用して一時的な「run.sh」ファイルに書き込み、それを実行します。
以上がGo から Bash スクリプトを効果的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。