Toon posts:

Bash: basename zonder newline?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik probeer in mn fluxbox menu een submenu dynamisch te creeren met alle files (documenten) uit een bepaalde dir erin, die dan geopend worden door abiword.
code:
1
2
3
4
5
6
7
8
9
10
11
12
rm .fluxbox/menu
cat ~/.fluxbox/menu01 >> ~/.fluxbox/menu
#find ~/*.* -type f -exec echo "[exec] ({}) {abiword {}}" >> ~/.fluxbox/menu \;

for file in $( find /home/typ/*.* -type f | sort )
do
    echo -n "[exec] (" >> ~/.fluxbox/menu
    basename $file >> ~/.fluxbox/menu
    echo ") {abiword $file}" >> ~/.fluxbox/menu
done

cat ~/.fluxbox/menu02 >> ~/.fluxbox/menu


Dit heb ik nu, maar basename gooit er een newline achteraan, zodat het wordt:
code:
1
2
[exec] (Filename.abw
) {abiword /home/typ/Filename.abw}


Als menu-item in fluxbox werkt dit niet, door de newline. Nu heb ik het nog geprobeerd met zoiets:
code:
1
echo -n ${$file/typ/test}
Alleen als test, maar dat werkt ook niet (bad substitution), als het al zou werken weet ik ook niet hoe ik de string '/home/typ/' zou in kunnen voeren als te vervangen gedeelte.

Die commentaar regel met find werkt wel prima, maar dan is de naam van het menu-item inclusief pad, en dat is niet de bedoeling. Ik heb geprobeerd door er meerdere execs aan te hangen maar dat werkt ook niet.

Ook heb ik het geprobeerd met expr:
code:
1
expr "//$file" : '.*/\([^/]*\)'
Maar dat geeft ook een newline, die voor zover ik kan vinden niet uit te zetten is.

Hoe krijg ik die bestandsnaam naar de menufile geoutput, zonder newline? Misschien iemand die het terug weet te brengen tot 1 regel door mijn find probeersel te fixen?

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

echo -n `basename $file` >> ~/.fluxbox/menu

[ Voor 36% gewijzigd door serkoon op 23-05-2006 22:42 ]


Verwijderd

Topicstarter
serkoon schreef op dinsdag 23 mei 2006 @ 22:41:
echo -n `basename $file` >> ~/.fluxbox/menu
Perfect! _/-\o_

Heel dom van me - ik was al eerder `` tegengekomen, maar ik probeerde steeds ''! |:( Zag door het kleine font het verschil niet.