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.
Avatar utente
Linpassion
Linux 2.0
Linux 2.0
Messaggi: 164
Iscritto il: mar ott 30, 2012 11:17
Slackware: 14.0
Kernel: 3.2.9-smp
Desktop: fluxbox

sed non scrive sul file startup di fluxbox

Messaggioda Linpassion » ven set 09, 2016 12:06

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: 12951
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: sed non scrive sul file startup di fluxbox

Messaggioda conraid » ven set 09, 2016 15:24

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.0
Linux 2.0
Messaggi: 164
Iscritto il: mar ott 30, 2012 11:17
Slackware: 14.0
Kernel: 3.2.9-smp
Desktop: fluxbox

Re: sed non scrive sul file startup di fluxbox

Messaggioda Linpassion » sab set 10, 2016 11:44

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