Pagina 1 di 1

sed non scrive sul file startup di fluxbox

Inviato: ven set 09, 2016 12:06
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.

Re: sed non scrive sul file startup di fluxbox

Inviato: ven set 09, 2016 15:24
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.

Re: sed non scrive sul file startup di fluxbox

Inviato: sab set 10, 2016 11:44
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