sed non scrive sul file startup di fluxbox

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 221
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

sed non scrive sul file startup di fluxbox

Messaggio da Linpassion »

come mai sed non aggiunge una riga al mio file di startup, cosi configurato:
#!/bin/sh
#
# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.

# Change your keymap:
xmodmap "/home/pluto/.Xmodmap"

# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
# idesk &

#[wall]
setxkbmap it &
nm-applet &
fbsetbg -l &
play ~/.fluxbox/sounds/wind.mp3 &


# Start DBUS session bus:
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi

# And last but not least we start fluxbox.
# Because it is the last app you have to run it with ''exec'' before it.

exec fluxbox
# or if you want to keep a log:
# exec fluxbox -log "/home/pluto/.fluxbox/log"
La riga da aggiungere va collocata sotto #[wall] tramite seguente script
function REMEMBER ()
{
#sed '/\[option\]/a Hello World' input
STARTUP=$(zenity --list --text="Pic startup" --radiolist --column "" --column "Load background on startup?" TRUE yes FALSE no)
case $STARTUP in
yes)
W=`cat ~/.fluxbox/fluxytool/wallpaper`
sed '/\#[wall]/a "$W" ' ~/.fluxbox/startup > ~/.fluxbox/pippo
;;
esac
}
ho tentato anche senza usare la redirezione. forse misfugge qualcosa.

Avatar utente
conraid
Staff
Staff
Messaggi: 13459
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: sed non scrive sul file startup di fluxbox

Messaggio da conraid »

Sed in quel modo non modifica il file, devi usare "-i" per farlo, però il file pippo dovresti averlo corretto.
Poi se ci sono altri errori non ho controllato.

Avatar utente
Linpassion
Linux 2.x
Linux 2.x
Messaggi: 221
Iscritto il: mar 30 ott 2012, 11:17
Slackware: 14.2
Desktop: xfce, fluxbox

Re: sed non scrive sul file startup di fluxbox

Messaggio da Linpassion »

Grazie...prosegui qui la coversazione.

ipotizzando che il mio file startup sia
...
# -wall-
fbsetroot -solif "#FFFFF" &
come mai il comando sed anziche sostituire la stringa di cui sopra con una nuova, me la concatena ad esempio cosi:
...
# -wall-
fbsetroot -solid "#000000" fbsetroot -solid "#ffffff" &
La parte di codice che dovrebbe riuscire a fare questa cosa è:
# Get picture, color or gradient choosed
W=`cat ~/.fluxbox/fluxytool/wallpaper`
TEST=`grep fbset ~/.fluxbox/startup`
# check if fbsetroot or fbsetbg is already present on startup file
# fbset is a match pattern
# -i -e to write sed output
if [ "$TEST" ]; then
# replace wallpaper
sed -i "s/$TEST$W/" ~/.fluxbox/startup
else
# set wallpaper
sed -i "/\-wall-/a $W" ~/.fluxbox/startup
fi

Rispondi