Lanciare emacs (Era: Re: Script per sapere se un processo è attivo)
On Thu, Apr 05, 2001 at 12:16:22AM +0200, FB scripsit:
> Prova con questo miniscript in fondo alla mail.
> ---------------------------------
> script apriconemacs.bash
> ---------------------------------
>
> #!/bin/bash
> #questo programma controlla se esiste un processo emacs
> #se si, usa emacsclient per aprire un file in esso
> #altrimenti lancia emacs abilitando la funzione di server
> #NOTE :
> # attivando emacs con server si lanciano due processi al prezzo di uno
> # un buffer aperto csi' andrebbe chiuso con C-x #, ma usando --no-wait
> # si puo' chiuderlo al solito modo
> #
> emacspid=`ps -u $USER |awk '$4=="emacs"{print $1}'`
> if [ $emacspid ]; then
> emacsclient --no-wait $1
> else
> emacs -f server-start $1
> fi
Salve,
per la serie perché far semplice quando si può far complicato... :)
(vabbé, il tipo che ha scritto la pagina man di emacsclient dice che
lui usa addirittura uno script perl...) In bash (e anche in altre
shell) || concatena due comandi in modo tale
che il secondo è eseguito se e solo se il primo esce con un
errore. Quindi
#!/bin/bash
(emacsclient -n +0 $1 2>/dev/null) || (emacs -f server-start $1)
fà cio che vuoi: prova a lanciare un emacsclient, se non ci riesce
perché emacs non c'è, lancia emacs e il server dentro di lui:)
Se vuoi fare il colmo della raffinatezza (IMHO), metti nello script
sopra i path completi:
\
#!/bin/bash
(/usr/bin/emacsclient -n +0 $1 2>/dev/null) || (/usr/bin/emacs -f server-start $1)
lo piazzi in ~/bin che metti all'inizio del PATH e lo chiami emacs :)
Cia'
--
Leo TheHobbit
IRCnet #roma2
ICQ 56656060
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GED/CS d? s-:+>-: a C+++ U+++ L++(+++)>++++ P+++>+++++ E+(++)
W++ N+ K? o? !w O? M V--- PS+++ PE-- Y+ GPG+ t++ 5? X- R+ tv+
b++++ D? DI? G e(++++)* h(+) r--(---) y--(+)>+++*
------END GEEK CODE BLOCK------
Reply to: