Porównywanie ścieżek - BASH

0

Witam, dopiero rozpoczynam przygodę z BASHem, na początku znalazłem jakieś proste zadanie jednak nawet ono mnie pokonuje.
Stworzyłem skrypt który
pod jedną zmienną posiada ścieżkę jakiegoś katalogu [$1=/plik/katalog]
pod drugą zmienną ma wynik polecenia realpath.[2=$(realpath $x)
Moim zadaniem jest sprawdzić czy ścieżka w zmiennej $2 jest wewnątrz katalogu wskazywanego przez zmienną $1.
Walczę już kilka godzin ze składnią IFa i w żaden sposób nie potrafię sprawdzić czy jedna ze ścieżek jest częścią drugiej.
Bardzo przepraszam za zaśmiecanie forum tak oczywistymi(pewnie dla wszystkich) pytaniami, ale nie potrafię sobie poradzić korzystając z internetowych statements`ów IFa.
Pozdrawiam

3

Walczę już kilka godzin ze składnią IFa

A może pokażesz w takim razie, co już masz?

0

Ale czemu bash? Nie lepiej SH?
Pokaż też co masz jako interpreter/

0

Na szybko - sprawdź czy inode się zgadza i wsio. W 99% przypadkach będzie działać, a tam gdzie działać nie będzie, to można wytłumaczyć, że w końcu to i tak ten sam plik.

4

Jeśli chcemy sprawdzić, czy katalog istnieje, używamy instrukcji testowania -d.

if [[ -d "$sciezkaDoKatalogu" ]]
then
    echo 'Katalog istnieje'
fi

Dla pliku będzie to -f.

Mając nazwę pliku możemy dopisać ją do ścieżki i sprawdzić czy pod nią coś istnieje, o tak:

nazwaPliku=`basename $nazwaPliku`

if [[ -d "$sciezkaDoKatalogu/$nazwaPliku" ]]
then
    echo 'Katalog istnieje'
fi

basename nie sprawdza czy plik istnieje. Robi tylko i wyłącznie tyle, że obcina wszystko przed nazwą pliku, np.

$ basename /tmp/kucyki.txt
kucyki.txt

Chyba tyle można napisać wedle treści podanej przez autora wątku. Jeśli się odezwie to może coś doprecyzuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1