Wpis z mikrobloga

Eksperty, bo mnie zaraz szlag trafi. Może trochę wypiłem, ale bez przesady. Mam skrypt w bashu. Chcę coś zrobić na określonych plikach. I tak np. (przepisuję z ręki, ale zamysł jest OK)

BACKUP_DIR="/xbackup/20200320"
for plik in "$BACKUP_DIR/*.bz2" do
if ["$plik" -ne "$BACKUP_DIR/dump1.bz2"] && ["$plik" != "$BACKUP_DIR/dump2.bz2"]
then
echo "Przetwarzam $plik"
else
echo "Pomijam $plik
fi
done

Problem w tym, że niezależnie czy stosuję != czy -ne wypluwa mi poprawne nazwy plików, z błędem:

line xxx /xbackup/20200320/dump1.bz2: Nie ma takiego pliku ani katalogu
to samo dla dump2.bz2

Co on próbuje tutaj interpretować? Jakie pliki i katalogi? Czemu nie mogę po prostu porównać stringów?

#linux #unix #bash
  • 16
@quente: ale ja mam te nazwy. Jak przed if dam "echo $plik" to wyświetli poprawnie nazwę. Problem jest na ifie - chcę porównać STRING - żadne uprawnienia nie powinny na tym etapie wpadać. Zwykłe łańcuchy alfanumeryczne, a on właśnie jakby się do katalogu chciał wbijać. Nawiasy skopałem? Inaczej się porównuje? Zmienna $plik nie jest stringiem tylko jakąś instancją pliku?
@etutuit: to samo, ale zwróciłeś mi uwagę na jedną rzecz. Komunikat tak naprawdę wygląda:

[[/xbackup/20200320/dump1.bz2: Nie ma takiego pliku ani katalogu
Czyli tak jakby po pierwsze: nawiasy stają się nazwą pliku/polecenia (poprzednio był jeden kwadratowy), po drugie - dalej próbuje interpretować polecenie/zawartość (?)
Korzystam z normalnego basha w Centos.
@quente: nie, selinux wyłączony całkowicie. Poza tym nadal się będę upierać, że to powinien być string, który jest wypełniony (poprawnie) - żaden selinux na tym etapie nie może mieszać. Coś jest nie tak z tym ifem, pewnie głupiego i prostego, a nie widzę...
@kawazaki: TAK! spacje między nawiasami i cudzysłowiem. Dżisas krajst, zajechałbym się. W tutorialu co oglądałem na WWW jest razem. Wiedziałem, że to coś głupiego.
Nie wiem czemu, ale doczytam o co dalej chodzi - póki co zadziałało - DZIĘKI!
@kawazaki: :D

ls /usr/bin -l
razem 734128
-rwxr-xr-x. 1 root root 41488 2019-08-20 [
-rwxr-xr-x. 1 root root 41 2018-02-06 7za
-rwxr-xr-x. 1 root root 107904 2019-01-21 a2p
.....

Ja pierniczę. Chyba na dzisiaj wystarczy mi pytań :D