• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bash - instrukcja if

Fiszki IT
Fiszki IT
0 głosów
47 wizyt
pytanie zadane 6 czerwca w Inne języki przez yumi382 Nowicjusz (120 p.)

Cześć!
Mam do napisania skrypt, gdzie mam sprawidzć czy w aktualnym katalogu jest przynamniej 1 plik o nazwie zaczynającej sie z zakresu „a -m”, jeśli tak, to mam wprodzadzić do pliku o nazwie „info” dokładne informacje o wszystkich plikach spełniających to kryterium i jednocześnie posiadających rozszerzenie „dat”, jeśli nie, to coś innego ma się wydarzyć (to już mam napisane - działa).
Problem pojawia się w pierszej części - za każdym razem wyskakuje mi "bash: [: too many arguments". Nie rozumiem..
Co tu jest źle?
Mój kod:

 

if  [ test -f [a-m]* ]; 
then 
  if [ test -f *.dat ];
    then
    -l > info.txt
else 
   BLABLA
fi
fi

 

1 odpowiedź

0 głosów
odpowiedź 6 czerwca przez edutomek Mądrala (5,140 p.)
Bo tak się nie da w Bashu - te `[a-m]*` zostają rozwinięte na wiele argumentów, co powoduje błąd, że niby tych argumentów jest za dużo.

Sprawdź to: https://stackoverflow.com/questions/6363441/check-if-a-file-exists-with-wildcard-in-shell-script

Osobiście użyłbym chyba tego `for`-a, ale co kto lubi.

Podobne pytania

0 głosów
1 odpowiedź 572 wizyt
pytanie zadane 31 maja 2015 w Inne języki przez ziemjok Gaduła (4,140 p.)
0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez Szarlotka Początkujący (490 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 2 kwietnia 2020 w JavaScript przez Codename Nowicjusz (140 p.)
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

84,745 zapytań

133,549 odpowiedzi

295,964 komentarzy

56,007 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...