Nowe posty

Autor Wątek: jak to zrobić  (Przeczytany 2971 razy)

dante107

  • Gość
jak to zrobić
« dnia: 2009-12-08, 15:21:29 »
To jest przykładowy test jaki będę musiał rozwiązać i chcę to zrozumieć i wiedzieć co robię a nie że gotowiec ponieważ test ostateczny będzie wyglądał na pewno inaczej:)


1. Zalogować się na swoje konto na serwerze.
2. Utworzyć katalog ~/test
3. Napisać skrypt powłoki o nazwie ~/test/numer , który ponumeruje
wiersze w pliku podanym jako parametr. Zmodyfikowany w ten
sposób plik ma zastąpić oryginalną jego wersję.
4. Dołączyć katalog ~/test do listy katalogów przechowywanej w zmiennej
powłoki PATH
5. Zapisać wartość zwiennej powłoki PATH w pliku ~/test/zmienna_path
6. Zapisać zawartość katalogu ~/test w postaci długiego opisu plików
(ls -l) w pliku ~/test/lista_plików
7. Zapisać wynik działania polecenia history do pliku ~/test/historia
8. Wysłać list na adres **************
- linia tematu powinna wyglądać następująco
********* - linux - kolokwium
- w treści listu proszę rozwinąć zagadnienie: Definicja systemu
operacyjnego
- do listu proszę załączyć pliki:
~/test/numer
~/test/zmienna_path
~/test/lista_plikow
~/test/historia

1 i 2 to banał
3. tworze plik numery a w nim (chyba
 tak ma to wyglądać?)
nl < $1 > /tmp/numery.tmp ; cat  /tmp/numery.tmp > $1
4. tu nie wiem czy mam zrobić jakiś plik który to robi, czy po prostu w wierszu poleceń wpisać komendę, która chyba tak powinna wyglądać
export PATH=$PATH:~/test
5.tu problem jak w 4 i chyba tak to powinno wyglądać:
PATH=$PATH:~/test > ~/test/zmienna_path
6.
ls -l > ~/test/lista_plików
7.
history > ~/plikhiostorii albo cat .bash_history > ~/plikhiostorii
8. pine
Ogólnie to nie wiem czy te wszystkie polecenia nie mają być wykonywane za pomocą jednego pliku?

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
jak to zrobić
« Odpowiedź #1 dnia: 2009-12-08, 16:10:16 »
4)
Możesz także dodać ten wpis do .bash_profile, aby zachować zmianę w PATH na stałe.

5)
Brakuje "echo", no i dodatki niepotrzebne, bo ma być tylko wartość zmiennej:
echo "$PATH" > ~/test/zmienna_path

6)
Brakuje określenia ścieżki, co ma listować. Bo domyślnie masz aktualny katalog:
ls -l ~/test > ~/test/lista_plików

7)
W zadaniu wyraźnie jest mowa o poleceniu, więc w sumie tylko to pierwsze. Ale i tak dobrze wiedzieć w którym pliku jest historia :P

dante107

  • Gość
jak to zrobić
« Odpowiedź #2 dnia: 2009-12-08, 18:59:26 »
Dzięki, tylko czy to mam wszystko wpisać w jeden plik czy do każdego punktu każdy następny i jak to uruchomić?
edit.
Wpakowałem to wszystko do pliku numery i uruchomiłem za pomocą takiej komendy:
$ . numery
wygląda to tak
#!/bin/bash
nl < $1 > /tmp/numery.tmp
cat /tmp/numery.tmp > $1
export PATH=$PATH:~/test
echo "$PATH" > ~/test/zmienna_path
ls -l ~/test > ~/test/lista_plikow
history > ~/test/historia
utworzyło te pliki i w sumie wszystko wygląda jak chyba powinno tylko podczs uruchamiania wywala cos takiego
*/test/numery: line 2: $1: ambiguous redirect
*/test/numery: line 3: $1: ambiguous redirect
jak temu zaradzić?

arctgx

  • Gość
jak to zrobić
« Odpowiedź #3 dnia: 2009-12-08, 20:32:53 »
Może napisz, co wrzuciłeś jako pierwszy parametr. Niezależnie od tego, nie zaszkodzi ująć $1 w cudzysłów.