Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Melaksanakan Skrip Bash dengan lancar daripada Go?

Bagaimanakah Saya Boleh Melaksanakan Skrip Bash dengan lancar daripada Go?

Susan Sarandon
Lepaskan: 2024-12-16 14:32:12
asal
990 orang telah melayarinya

How Can I Seamlessly Execute Bash Scripts from Go?

Melaksanakan Skrip Bash dengan lancar daripada Go

Melaksanakan skrip bash daripada Golang boleh menimbulkan cabaran menggunakan kaedah os/exec standard. Untuk melaksanakan keseluruhan fail sh dengan berkesan, ikuti langkah berikut:

Untuk Pelaksanaan Terus:

  1. Awalan skrip dengan #!/bin/sh (atau # !/bin/bash).
  2. Jadikan skrip boleh laku menggunakan chmod x .

Menggunakan /bin/sh dengan Laluan Skrip:

  • Jika anda memilih untuk tidak menjadikan skrip boleh laku, gunakan / bin/sh dan sediakan laluan skrip sebagai hujah:
cmd := exec.Command("/bin/sh", mongoToCsvSH)
Salin selepas log masuk

Contoh Skrip (dengan mengandaikan laluan dan kebenaran boleh laku ditetapkan):

OIFS=$IFS;
IFS=",";

# fill in your details here
dbname=testDB
host=localhost:27017
collection=testCollection
exportTo=../csv/

# get comma separated list of keys. do this by peeking into the first document in the collection and get his set of keys
keys=`mongo "$host/$dbname" --eval "rs.slaveOk();var keys = []; for(var key in db.$collection.find().sort({_id: -1}).limit(1)[0]) { keys.push(key); }; keys;" --quiet`;
# now use mongoexport with the set of keys to export the collection to csv
mongoexport --host $host -d $dbname -c $collection --fields "$keys" --csv --out $exportTo$dbname.$collection.csv;

IFS=$OIFS;
Salin selepas log masuk

Pergi Kod:

var mongoToCsvSH string

func executeMongoToCsv() {
    out, err := exec.Command(mongoToCsvSH).Output()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("output is %s\n", out)
}
Salin selepas log masuk

Kesimpulan:

Mengikut langkah ini, anda boleh melaksanakan skrip bash dari Golang dengan berkesan, sama ada secara langsung atau melalui /bin/sh .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Skrip Bash dengan lancar daripada Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan