Mengambil keluaran konsol


0

Saya menjalankan kueri Hadoop dari skrip shell. Ini adalah bagaimana saya melakukannya di skrip shell saya.

echo "SELECT COUNT(*) FROM test" | hive

Saya ingin menangkap output apa pun yang dihasilkan hiveperintah. Jadi, saya menjalankan skrip shell saya sebagai:

./hivequery.sh 2>&1 | tee output.txt

Tapi, saya tidak bisa menangkap output dari hiveperintah. Bagaimana saya bisa melakukan itu?


Karena penasaran, mengapa Anda menggunakan tee? Apakah itu berfungsi dengan pengalihan sederhana ./hivequery.sh 2>&1 > output.txt,? Apakah ini berfungsi jika Anda menjalankan perintah echo dan hive langsung dari terminal?
— terdon

Gunakan |&alih-alih 2>&1 |sintaks lama , ini lebih pendek. Cobalah tanpa teeterlebih dahulu, lalu baca man teedan mainkan dengan parameter untuk membuatnya melakukan apa yang Anda inginkan. Jika tee tidak berfungsi, Anda harus mencari alternatif.
— Tamara Wijsman

Terima kasih. Saya memeriksa dengan pengalihan, tetapi tidak berhasil. :-(
— divinedragon

1
Apakah kamu sudah mencoba script? Misalnya script elmakan menangkap semua output dari program elm, termasuk kode warna dan penyegaran`. Salinan semua output akan dicatat dalam file.
— Hennes

Jawaban:


0

Mengerti. Saya menambahkan operator pengalihan dalam perintah shell itu sendiri di dalam skrip.

echo "SELECT COUNT(*) FROM test" | hive 2>&1

The scriptjuga bekerja.

script -c ./myscript.sh output.txt

scriptIkuti dengan @Hennes disarankan di atas. Ide yang jauh lebih bersih
— Sudipta Chatterjee

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.