Newsgroup: it.comp.os.linux.iniziare
Titolo: Panico da bash (redirezione HERE DOCUMENT in un alias)

Ciao, 
volevo usare un alias per aggiungere gli appuntamenti a "cal"; a mano 
uso i seguenti comandi:
$ cal
$ cat >>appuntamenti.txt<<EOF
Se creo nel .bashrc un alias tipo 
alias appuntamento="cal; cat >> ~/cal-appunt.dat << . "
viene prima eseguita la redirezione e *poi* mi viene mostrato il 
calendario mentre io vorrei che avvenisse il contrario.
Problema analogo se queste cose le metto in una funzione o in uno script.
Chi mi aiuta a capire dov'è il problema?
N.B. Considerando che sono anni che mi scrivo funzioni e che qualche 
settimana fa ho impiegato mezz'ora a capire che mi stavo scordando il 
";" prima della graffa di chiusura siate comprensivi se mi sto 
impiccando con una banalità... :-)  
Ciao.
-- 
Antonio :-D


Facebook: Massimo Bacilieri

 $ cat >>appuntamenti.txt<<EOF
forse ho capito cosa vuoi fare
$ ccal() { cal; while read a ; do echo "$a" >> pippo.txt ; done ; }
$ ccal
    October 2010
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
asdef asfjko eqwipu p wr
powgf  wroi g wergpoi
$ cat pippo.txt 
asdef asfjko eqwipu p wr
powgf  wroi g wergpoi
$ 

> cal-appunt.dat ; done ; }
appuntamento() { 
ccal80 -f -th 
echo "* Inserisci l'appuntamento ed esci con CTRL-c *"
echo "* YYYY MM DD 00 appuntamento"
while read -e -p "> " a 
        do echo "$a" >> ~/cal-appunt.dat  
done ; } 
#v-
Ciao e grazie.
-- 
Antonio :-D

grafica.
Ho i miei potenti mezzi! ;-P
Giï¿œ dai tempi della Debian Potato avevo scoperto che esisteva un cal
diverso da quello delle bsdutil, rinominato nel repository di Debian
come "ccal". Quando, in ufficio (con Windows), ho iniziato a cercare
un programma analogo ho scoperto che esistevano i sorgenti di quello
specifico programma e che questi potevano essere ricompilati in modo
molto semplice anche per il DOS (e windows) con djgpp o -meglio- con
il turbo C (la versione 2.0, ormai abbandonware, ï¿œ perfetta!). 
A differenza del cal BSD questo usa i colori, permette di creare gli
appuntamenti, sia fissati che periodici (io l'uso per i compleanni),
e di usare file multipli di appuntamenti, compresi i file di remind;
io, con quell'alias, volevo sfruttare proprio quest'aspetto dei file
multipli in modo da tenere il ~/.cal.dat coi compleanni e gli eventi
periodici separato dal file degli appuntamenti con data fissata. 
Inutile dire che la prima cosa che ho fatto sotto OSX ï¿œ stata quella
di riadattare i sorgenti per compilarli anche sotto quest'altro UNIX
ed ha funzionato. 
Tanto piï¿œ che, negli anni, ho fatto piccole modifiche ai sorgenti in
modo da localizzarlo ed adattarne il comportamento all'europea.
Il link, per i curiosi, ï¿œ: 
http://unicorn.us.com/cal.html
.
Questa ï¿œ l'ultima versione, e rispetto a quella scaricabile dai repo
Debian ha qualche piccolo bug, ma qualche funzione in piï¿œ.
Ciao e grazie mille.
-- 
Antonio :-D

 come "ccal". 
E ma cazz... dilla tutta :-O
Comunque se ho capito quello che vuoi fare, lo puoi fare con uno script
di poche righe, anziché un alias. Qualcosa tipo:
#!/bin/bash
cal &> appuntamenti.txt
while read line; do
	if [ "$line" == "." ]; then break; fi
	echo $line >> appuntamenti.txt
done
poi riaggiusta un po' le redirezioni, io non ho ccal per provare a
vedere cosa viene fuori...


vedere cosa viene fuori...
Le redirezioni sono perfette come le hai fatte tu; o intendevi qualcosa
che non ho capito?
Ciao.
--
Antonio :-D

 che non ho capito?
Intendevo che così come te l'ho scritta ti pialla a zero ogni volta il file
"appuntamenti.txt". Se era un file cui invece volevi di volta in volta
*aggiungere* delle cose, la redirezione che ti ho indicato non va bene, e
devi modificarla in un append (&>>).
-- 
Massimo Bacilieri AKA Crononauta 


 alla emacs, orribili per noi che usiamo vim. ;-)
set -o vi
-- 
Well they lay down beside me, I made my confession to them.