polecenie find w skrypcie bash

BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Cześć,
piszę aktualnie swój pierwszy skrypt w bashu. Chcę użyć w nim polecenia find w postaci find /home/workspace/Projekt/ -name *.txt- kiedy wpisuję takie polecenie w konsoli to działa bez zastrzeżeń.
Problem pojawia się gdy próbuję je umieść w skrypcie. Skrypt:

Kopiuj
ROZSZERZENIE=$2
KATALOG=$3

find $KATALOG' -name *'$ROZSZERZENIE

Skrypt wywołuję w taki sposób: ./Zadanie1.sh .txt /home/workspace/Projekt/

Otrzymuję taki błąd: find: ‘/home/workspace/Projekt/ -name *.txt’: No such file or directory

Na pewno nie chodzi o prawa dostępu- sprawdziłem to.
Bardzo proszę o pomoc.

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
2

Skopałeś z cudzysłowami. Powinno to wyglądać tak:

Kopiuj
EXT="$2"
DIR="$3"

find "$DIR" -name "*$EXT"
BA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Masz rację, teraz działa. Wielkie dzięki

WP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 17
0

Jeśli już, to powinno być:

Kopiuj
EXT="$1"
DIR="$2"

find "$DIR" -name "*$EXT"

Kopiuj

Ale i tak jest to próżne przetwarzanie zmiennych.
Nie lepiej po prostu wpisać w skrypcie:

Kopiuj
find "$2" -name "*$1"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.