On Fri, 22 Nov 2013 12:15:21 +0000 Sharon Kimble <boudic...@talktalk.net> wrote:
> On Fri, 22 Nov 2013 09:09:23 +1100 > Scott Ferguson <scott.ferguson.debian.u...@gmail.com> wrote: > > > On 22/11/13 08:50, Scott Ferguson wrote: > > > On 22/11/13 06:39, Scott Ferguson wrote: > > <snipped> > > > > > > Try #2 :/ > > > > Try #3 (no sleep last night - trees and power lines down across the > > property in last nights storms) Sorry. > > This time I remembered to escape those brackets. Please test this - > > I can only check the script works, can't check if mmaker likes it. > > > > > > > > Ignore the above - that echo won't reliably create multiple lines, > > > printf will. > > > > > > Try this which will:- > > > > echo " > > #!/bin/bash > > # .fmenu > > mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)} > > mmaker fluxbox -f > > printf "\t[submenu] \(My > > Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]" > > >> ~/.fluxbox/menu" > ~/.fmenu > > > > > > > > > > > The above will:- > > > create a script ~./.fmenu > > > > > > Running ~/.fmenu will:- > > > mv your existing ~/.fluxbox/menu to ~/.fluxbox/menu-YYYYmmdd-hh:mm > > > create a new ~/.fluxbox/menu > > > append your submenu to it > > > > > > > > > If you want to remove the last [end] tag from the main menu (as > > > suggested by Linux Fan try this:- > > > > echo " > > #!/bin/bash > > # .fmenu > > mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)} > > mmaker fluxbox -f > > sed -i 's/\[end]//g' ~/.fluxbox/menu;sed -i '/^\s*$/d' > > ~/.fluxbox/menu printf "\t[submenu] \(My > > Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]" > > >> ~/.fluxbox/menu" > ~/.fmenu > > > > > > > > Someone more awake than I can probably make that double invocation > > of sed into a single call. > > > Morning Scott. > Thanks for this, I hope you slept better? This is what I currently > have - > > #!/bin/bash > # .fmenu > mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)} > > mmaker fluxbox -f > > sed -i 's/\[end]//g' ~/.fluxbox/menu;sed -i '/^\s*$/d' ~/.fluxbox/menu > > printf '\t[submenu] \(My > Menu\)\n\t[include]\(~/.fluxbox/usermenu\)\n\t[end]\n\t[separator]' > >>~/.fluxbox/menu" >~/.fmenu > > and the double sed line works okay, but its failing at the 'printf' > line saying - > 'tryitout > /home/boudiccas/bin/tryitout: line 21: /home/boudiccas/.fluxbox/menu > > >~/.fmenu' > > NB - my working script is always called 'tryitout', just whilst I'm > developing something. > > The new menu is created without the two [end] at its end, but there is > nothing from 'printf' at all. > > Sorry > Sharon. > I've got it working with this line - mv ~/.fluxbox/menu{,-$(date +%Y%m%d-%R)}; mmaker fluxbox -f;perl -0777 -pi -e 's/(.*)\[end]/$1/s;s/(.*)\[end]/$1/s;s/^\s*\n//gm' ~/.fluxbox/menu;printf '\t[end]\n\t[separator]\n\t[submenu] (My Menu)\n\t[include] (~/.fluxbox/usermenu)\n\t[end]\n\t[end]' >>~/.fluxbox/menu Thanks for all those who offered solutions. Sharon.
signature.asc
Description: PGP signature