Freesco, NND, CDN, EOS

http://www.freesco.pl
Dzisiaj jest niedziela, 29 czerwca 2025, 11:42

Strefa czasowa UTC+2godz.




Nowy temat Odpowiedz w temacie  [ Posty: 5 ] 
Autor Wiadomość
Post: czwartek, 15 września 2005, 22:16 
Offline
Użytkownik

Rejestracja: wtorek, 13 sierpnia 2002, 11:27
Posty: 823
Lokalizacja: Lubliniec
Witam - mam kolejny problemik:

mam pusty plik. Zawiera on jednak szesnatkową liczbę 0a. I teraz jak poleceniem if sprawdzić że tam jest 0a

Robię tak:
TEST=`cat plik1`

if [ $TEST == 0x0a ]; then
echo Jest OK
fi

- nie działa

natomiast:
echo $TEST >plik2 daje to samo co w pliku1

_________________
Ludzie często, zamiast szukać prostych rozwiązań, komplikują sobie życie...


Na górę
 Wyświetl profil  
 
Post: czwartek, 15 września 2005, 22:24 
Offline
MODERATOR

Rejestracja: piątek, 5 lipca 2002, 17:31
Posty: 2449
Lokalizacja: Londyn
adi pisze:
if [ $TEST == 0x0a ]



O ile się nie mylę, to w ten sposób porównujesz string. Czyli if będzie prawdziwy jeśli w zmiennej będziesz miał dokładnie te znaki: 0x0a. Nie ma to nic wspólnego z liczbą szesnastkową.
Gdzieś czytałem że bash pozwala porównywać liczby szesnastkowe bezpośrednio więc może spróbuj tak:

if [ $TEST -eq 0x0a ]

nie gwarantuję że zadziała... generalnie man bash powinien rozwiać twoje wątpliwości. Ewentualnie bash advanced scripting guide - znajdziesz na świerzym mięsku.

_________________
Mis'
___________________________________
"Real Men Use Telnet on port 80" (el bid)


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 16 września 2005, 07:14 
Offline
Użytkownik

Rejestracja: wtorek, 13 sierpnia 2002, 11:27
Posty: 823
Lokalizacja: Lubliniec
Niestety - nie działa :(
Pytanie 2 - jak sprawdzić długość pliku ??

_________________
Ludzie często, zamiast szukać prostych rozwiązań, komplikują sobie życie...


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 16 września 2005, 10:37 
Offline
PGF

Rejestracja: niedziela, 14 lipca 2002, 14:33
Posty: 3234
Lokalizacja: Radziejów
: [/] [] ()
root@serwer:/home$cat plik1
0a

root@serwer:/home$cat test
#!/bin/sh
TEST=`cat plik1`

if [ $TEST == 0a ]; then
  echo Jest OK
else
  echo $TEST
fi
root@serwer:/home$./test
Jest OK


Sa rozne metody, wystarczy sobie to "wyciagnac" z polecenia ls -l albo policzyc przez wc
: [/] [] ()
root@serwer:/home$cat plik1|wc -c
      3

root@serwer:/home$wc -c plik1
      3 plik1
root@serwer:/home$ls -l plik1
-rw-r--r--    1 root     root            3 Sep 16 10:26 plik1

_________________
Nie jestem NEKROMANTĄ, nie wróżę z flaków!
Alkohol pity z umiarem nie szkodzi nawet w największych ilościach!
Przeczytaj nim zapytasz
Obrazek


Na górę
 Wyświetl profil  
 
 Tytuł:
Post: piątek, 16 września 2005, 10:40 
Offline
Użytkownik

Rejestracja: wtorek, 13 sierpnia 2002, 11:27
Posty: 823
Lokalizacja: Lubliniec
Dzięki Zciech - ale wykombinowałem wcześniej - ostatnią Twoją opcją - przez ls - działa znakomicie :D

P.S. - ale plik miał wielkość 1 bajt i tam było szesnastkowo 0x0a czyli liczba 10. To Co Ty pokazałeś dotyczy sytuacji, kiedy w pliku jest normalna liczba tekstowo- ale już po sprawie. :)

_________________
Ludzie często, zamiast szukać prostych rozwiązań, komplikują sobie życie...


Na górę
 Wyświetl profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 5 ] 

Strefa czasowa UTC+2godz.


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 15 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
cron
Technologię dostarcza phpBB® Forum Software © phpBB Group
Hosting: Compus-Net
RobertKonik.pl