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?

divinedragon
sumber
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
divinedragon
sumber
scriptIkuti dengan @Hennes disarankan di atas. Ide yang jauh lebih bersih
Sudipta Chatterjee