Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Polecenie if i liczby szesnastkowe
http://forum.freesco.pl/viewtopic.php?f=22&t=8995
Strona 1 z 1

Autor:  adi [ czwartek, 15 września 2005, 22:16 ]
Tytuł:  Polecenie if i liczby szesnastkowe

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

Autor:  Mis' [ czwartek, 15 września 2005, 22:24 ]
Tytuł:  Re: Polecenie if i liczby szesnastkowe

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.

Autor:  adi [ piątek, 16 września 2005, 07:14 ]
Tytuł: 

Niestety - nie działa :(
Pytanie 2 - jak sprawdzić długość pliku ??

Autor:  zciech [ piątek, 16 września 2005, 10:37 ]
Tytuł: 

: [/] [] ()
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

Autor:  adi [ piątek, 16 września 2005, 10:40 ]
Tytuł: 

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. :)

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/