Go での Os Exec Sudo Command
背景
Go とゴルーチンの探索中、ユーザーはでコマンドを実行すると問題が発生する可能性があります。形式:
sudo find /folder -type f | while read i; do sudo -S chmod 644 "$i"; done
質問
Answer
cmd := exec.Command("/bin/sh", "-c", "sudo find ...")
コードの変更
変更されたコードは次のとおりです:
package main import ( "fmt" "os/exec" ) func main() { cmd := exec.Command("/bin/sh", "-c", "sudo find /folder -type f | while read i; do sudo -S chmod 644 \"\"; done") out, err := cmd.CombinedOutput() if err != nil { fmt.Printf("Error: %s\nOutput: %s", err, out) } }
以上がGo で sudo コマンドを実行すると、exec.Command() が終了ステータス 1 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。