Ho un documento Open Office Spreadsheet memorizzato all'interno di una variabile bash. Voglio fare qualcosa come il seguente per alimentare Open Office tramite STDIN
:
echo "$openOfficeDoc" | ooffice
Ma non funziona.
Nota: Il contenuto della variabile bash non deve essere scritto su disco.
Sottolineo che sto cercando di passare a Open Office i dati effettivi del file.
Sto cercando di memorizzare le password in un file di foglio di lavoro di Open Office. Le password sono crittografate tramite GPG. Non voglio che le password vengano scritte su disco per motivi di sicurezza.
Il valore della variabile bash è un BLOB binario di un foglio di calcolo di Open Office. non ASCII.
Il codice bash che ho usato per creare il BLOB è:
data=$(cat "Encrypted.gpg" | gpg -u "Dor" -d)
Mentre Encrypted.gpg
è un file crittografato di un foglio di lavoro di Open Office.
È possibile alimentare Open Office tramite STDIN?
Risposta accettata:
Non credo che OpenOffice possa essere convinto a leggere dal suo input standard. Ma non importa. Basta scrivere i dati in un file temporaneo.
Non vuoi che le password vengano scritte su disco. Va bene. Scrivili in un file che non è archiviato su disco.
Molti sistemi utilizzano un filesystem in memoria (tmpfs) per /tmp
. Solaris lo fa da anni; Le distribuzioni Linux sono state lente a venire al mix (Fedora 18 lo ha adottato, Debian e Ubuntu non si sono ancora spostati), quindi di solito richiede all'amministratore di sistema di configurarlo manualmente. Tuttavia, le moderne distribuzioni Linux montano un filesystem tmpfs da qualche parte; le versioni recenti della libreria standard lo richiedono. La posizione standard per tmpfs è /run
, con /run/shm
essendo scrivibile da tutto il mondo (stesse autorizzazioni di /tmp
), ma alcune distribuzioni potrebbero non averlo ancora; guarda /dev/shm
e forse altri luoghi.