[BASH] 'sudo su -' w skrypcie.
- mihau
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 09 lut 2009, 14:55
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
[BASH] 'sudo su -' w skrypcie.
Hej.
Chce napisać mały skrypt który będzie instalował aplikacje uruchamianą pod wine, konfigurował ją itp.
Aczkolwiek jest mały zgrzyt, w firmie wszystkie laptopy mają Ubuntu 9.04 a oficjalne repo z wine dla 9.04 wygasły, znalazłem inne z którego się instaluje, lecz wymaga to wrzucenia do /etc/apt/source.list tego repo, więc wiadomo, tylko z roota można zapisać coś w source.list...
Jak to teraz ładnie ująć, żeby wrzucało np. przez sed -i, link repo do source.list'a.
Chce napisać mały skrypt który będzie instalował aplikacje uruchamianą pod wine, konfigurował ją itp.
Aczkolwiek jest mały zgrzyt, w firmie wszystkie laptopy mają Ubuntu 9.04 a oficjalne repo z wine dla 9.04 wygasły, znalazłem inne z którego się instaluje, lecz wymaga to wrzucenia do /etc/apt/source.list tego repo, więc wiadomo, tylko z roota można zapisać coś w source.list...
Jak to teraz ładnie ująć, żeby wrzucało np. przez sed -i, link repo do source.list'a.
- azhag
- Serdeczny Borsuk
- Posty: 151
- Rejestracja: 24 maja 2010, 19:30
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Prościej będzie utworzyć plik w katalogu /etc/apt/sources.list.d/.
Wystarczy
Wystarczy
Kod: Zaznacz cały
sudo echo wpis >/etc/apt/sources.list.d/plik
Polski portal Debiana: http://dug.net.pl/
- empitt
- Przyjaciel
- Posty: 465
- Rejestracja: 16 lis 2007, 13:35
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Lub:
lub:
Kod: Zaznacz cały
sudo bash -c "echo 'deb repo...' >> /etc/apt/sources.list"
Kod: Zaznacz cały
echo 'deb repo...' | sudo tee -a /etc/apt/sources.list
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
A jeśli z jakiegoś powodu lista Ci się rozrośnie, to możesz zastosować mechanizm osadzania dokumentu lub wczytać repozytoria z pliku. Przy dużej liście adresów, użycie echo robi się niewygodne i trzeba łamać wiersze. No i kod skrypt robi się nieładny/nieczytelny.
Jeśli nie chcesz widzieć adresów na ekranie, to można przekierować wyjście do kosza
Zrób też kopię pliku
Kod: Zaznacz cały
#!/bin/bash
sudo tee -a /etc/apt/sources.list <<EOF
# Wine Ubuntu 10.04
deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu lucid main
# Wine Debian
deb http://wine.budgetdedicated.com/apt
EOF
Kod: Zaznacz cały
sudo tee -a /etc/apt/sources.list 1> /dev/null
Więcej o mnie znajdziesz na: http://ospulse.pl
- empitt
- Przyjaciel
- Posty: 465
- Rejestracja: 16 lis 2007, 13:35
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Przesada...Przy dużej liście adresów, użycie echo robi się niewygodne i trzeba łamać wiersze.
Kod: Zaznacz cały
#!/bin/bash
sudo bash -c "echo 'deb repo...
deb repo1...
deb repo2...
deb repo3...' >> /etc/apt/sources.list"
Nie zauważyłem tego, aby powyższy kod był nieczytelny i nieładny. Faktycznie Twoja wersja jest o ciut milsza, ale na moje oko echo wcale gorzej nie wypada. Raczej nazwałbym to kwestią gustu i przyzwyczajenia.No i kod skrypt robi się nieładny/nieczytelny.
- mihau
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 09 lut 2009, 14:55
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Potestuję sobie dzisiaj i zobaczymy co z tego wyjdzie;) dzięki wielkie
- azhag
- Serdeczny Borsuk
- Posty: 151
- Rejestracja: 24 maja 2010, 19:30
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Można też:empitt pisze:Przesada...
Kod: Zaznacz cały
#!/bin/bash sudo bash -c "echo 'deb repo... deb repo1... deb repo2... deb repo3...' >> /etc/apt/sources.list"
Nie zauważyłem tego, aby powyższy kod był nieczytelny i nieładny. Faktycznie Twoja wersja jest o ciut milsza, ale na moje oko echo wcale gorzej nie wypada. Raczej nazwałbym to kwestią gustu i przyzwyczajenia.
Kod: Zaznacz cały
cat >plik <<EOF
jeden
dwa
trzy
cztery
EOF
Polski portal Debiana: http://dug.net.pl/
- borzole
- Serdeczny Borsuk
- Posty: 127
- Rejestracja: 10 sie 2010, 11:48
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
można tak:
Kod: Zaznacz cały
main(){
echo Hello $(whoami)
}
# run_as_root
if [ `id -u` != 0 ] ; then
abs_path="$(readlink -f `dirname $0`)/$(basename $0)"
echo "[su -] uruchaminie jako root"
su -c"/bin/bash $abs_path $*"
else
main $*
fi
- azhag
- Serdeczny Borsuk
- Posty: 151
- Rejestracja: 24 maja 2010, 19:30
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Drobna poprawka:borzole pisze:można tak:Kod: Zaznacz cały
main(){ echo Hello $(whoami) } # run_as_root if [ `id -u` != 0 ] ; then abs_path="$(readlink -f `dirname $0`)/$(basename $0)" echo "[su -] uruchaminie jako root" su -c"/bin/bash $abs_path $*" else main $* fi
Kod: Zaznacz cały
[ `id -u` -ne 0 ]
Polski portal Debiana: http://dug.net.pl/
- borzole
- Serdeczny Borsuk
- Posty: 127
- Rejestracja: 10 sie 2010, 11:48
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
to już chyba jeden pies != czy -ne, czy może jest coś o czym nie wiem?
- azhag
- Serdeczny Borsuk
- Posty: 151
- Rejestracja: 24 maja 2010, 19:30
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
-ne, -eq, -lt i spółka służą do porównywania liczb
Polski portal Debiana: http://dug.net.pl/
- borzole
- Serdeczny Borsuk
- Posty: 127
- Rejestracja: 10 sie 2010, 11:48
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: [BASH] 'sudo su -' w skrypcie.
Tyle to ja wiem, pytam czy jest jakaś różnica w działaniu
[ `id -u` -ne 0 ]
i
[ `id -u` != 0 ]
dla mnie jest bardziej czytelny zapis z C, jest stosowany też w innych językach.
[ `id -u` -ne 0 ]
i
[ `id -u` != 0 ]
dla mnie jest bardziej czytelny zapis z C, jest stosowany też w innych językach.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości