Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-04-01 09:41:50

  krzys.tk - Użytkownik

krzys.tk
Użytkownik
Zarejestrowany: 2010-05-07

[bash] completion - lista katalogów

Siema
Napisałem sobie skrypcik do podmieniania profili w Firefoxie. Chciałbym aby po wpisaniu zmien_profil[Tab] bash sugerował mi katalogi znajdujące się w /home/krzys/.mozilla/firefox (z wyjatkiem katalogu Crash Reports) zamiast z obecnego katalogu. Przejrzałem już dziesiątki przykładów ale nie mogłem znaleźć interesującego mnie rozwiązania. Proszę o pomoc.

Offline

 

#2  2013-04-02 10:31:31

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: [bash] completion - lista katalogów

Może proste, głupie i naiwne, lub nie zrozumiałem do końca problemu ;), ale czy po prostu nie możesz w skrypcie użyć polecenia cd do przejścia do danego katalogu i wtedy wszelkie operacje tabem tam będą wykonywane ?
Albo zainteresować się bashowym complete.

Ostatnio edytowany przez ba10 (2013-04-02 11:03:14)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#3  2013-04-02 12:45:59

  krzys.tk - Użytkownik

krzys.tk
Użytkownik
Zarejestrowany: 2010-05-07

Re: [bash] completion - lista katalogów

Skrypt uruchamiam z folderu /usr/share/bin parametrem $1 który powinien byc jednym z folderow w  /home/krzys/.mozilla/firefox. Czyli tak na prawde bedac w  /home/krzys/Pobrane albo /media/sda2 daje zmien_profil [tab] i pojawiaja mi sie propozycje z folderu  /home/krzys/.mozilla/firefox

Czytalem sporo o bash_completion ale nie znalazłem nigdzie uzytecznego przykladu.

Offline

 

#4  2013-04-03 09:56:32

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: [bash] completion - lista katalogów

A mógłbyś wkleić treść skryptu, by można było pokombinować coś, bo tak się domyślać trzeba niektórych rzeczy i trudno pod ten problem coś konkretnie wymyślić.


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#5  2013-04-03 15:15:09

  krzys.tk - Użytkownik

krzys.tk
Użytkownik
Zarejestrowany: 2010-05-07

Re: [bash] completion - lista katalogów

Proszę bardzo:

Kod:

cat /usr/local/bin/zmien_profil
#!/bin/bash

case $1 in
    "aero" ) profile=aero
        cmd="/ip firewall mangle enable 1" ;;
    "ewa" ) profile=ewa
        cmd="/ip firewall mangle disable 1" ;;
    "pawel" ) profile=pawel
        cmd="/ip firewall mangle enable 1" ;;
    * ) profile=krzys
        cmd="/ip firewall mangle disable 1" ;;
esac

if [[ `pidof firefox` != "" ]] ; then
    killall firefox
fi

cd /home/krzys/.mozilla/firefox/
rm default
ln -s $profile default

if [[ $2 == "tak" ]] ; then
    echo "Przekonfiguruję router"
    ssh admin@192.168.0.1 $cmd
fi

Ostatnio edytowany przez krzys.tk (2013-04-03 17:27:56)

Offline

 

#6  2013-04-05 09:39:42

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: [bash] completion - lista katalogów

Jejku, źle Ciebie zrozumiałem, myślałem że w skrypcie chciałeś wybór zrobić, a następnie od początku przeczytałem watek :) trochę w pracy mam kociołek i nie ogarnąłem ;)
Mam taki pomysł z funkcją do complete, którą albo wrzucam do .profile w katalogu domowym użytkownika albo do /etc/bash_completion.d/ tylko mi coś to nie działa, ale to może, że na szybko próbowałem zrobić i się gdzieś pierdzielnałem. Sprawa na tyle intrygująca że tylko więcej czasu znajdę to posiedzę nad tym, a jak Tobie coś się uda to śmiało się zapoznam :)

Ostatnio edytowany przez ba10 (2013-04-05 09:40:22)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#7  2013-04-11 11:41:11

  krzys.tk - Użytkownik

krzys.tk
Użytkownik
Zarejestrowany: 2010-05-07

Re: [bash] completion - lista katalogów

Udało mi się troszkę po wieśniacku obejśc ten problem:

Kod:

 complete -W "aero ewa krzys pawel" zmien_profil

Jednak nie jest to to, czego chciałem bo jeśli zmienię coś w .mozilla/firefox, zmiany nie będą wzięte pod uwagę.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)