Saya memiliki dokumen Open Office Spreadsheet yang disimpan di dalam variabel bash. Saya ingin melakukan sesuatu seperti berikut untuk memberi makan Open Office melalui STDIN
:
echo "$openOfficeDoc" | ooffice
Tapi itu tidak berhasil.
Catatan: Konten variabel bash tidak boleh ditulis ke disk.
Saya akan menekankan bahwa saya mencoba untuk memberikan ke Open Office data sebenarnya dari file tersebut.
Saya mencoba menyimpan kata sandi dalam file Open Office Spreadsheet. Kata sandi dienkripsi menggunakan GPG. Saya tidak ingin kata sandi ditulis ke disk untuk alasan keamanan.
Nilai variabel bash adalah gumpalan biner dari dokumen Open Office Spreadsheet. Itu tidak ASCII.
Kode bash yang saya gunakan untuk membuat blob adalah:
data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)
Sementara Encrypted.gpg
adalah file terenkripsi dari Open Office Spreadsheet.
Apakah mungkin memberi makan Open Office melalui STDIN?
Jawaban yang Diterima:
Saya tidak berpikir OpenOffice dapat diyakinkan untuk membaca dari input standarnya. Tapi itu tidak masalah. Cukup tulis data ke file sementara.
Anda tidak ingin kata sandi ditulis ke disk. Tidak apa-apa. Tuliskan ke file yang tidak disimpan di disk.
Banyak sistem menggunakan sistem file dalam memori (tmpfs) untuk /tmp
. Solaris telah melakukannya selama berabad-abad; Distribusi Linux lambat untuk bergabung (Fedora 18 mengadopsinya, Debian dan Ubuntu masih belum bergerak) sehingga biasanya memerlukan administrator sistem untuk mengaturnya secara manual. Namun, distribusi Linux modern memasang sistem file tmpfs di suatu tempat; versi terbaru dari perpustakaan standar memerlukannya. Lokasi standar untuk tmpfs adalah /run
, dengan /run/shm
dapat ditulis oleh dunia (izin yang sama dengan /tmp
), tetapi beberapa distribusi mungkin belum memilikinya; lihat /dev/shm
dan mungkin lokasi lain.