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

Bash - instrukcja if

Object Storage Arubacloud
0 głosów
479 wizyt
pytanie zadane 6 czerwca 2021 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 2021 przez edutomek Dyskutant (8,380 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ź 710 wizyt
pytanie zadane 31 maja 2015 w Inne języki przez ziemjok Gaduła (4,160 p.)
0 głosów
1 odpowiedź 514 wizyt
pytanie zadane 7 kwietnia 2020 w C i C++ przez Szarlotka Użytkownik (890 p.)
+1 głos
1 odpowiedź 332 wizyt
pytanie zadane 30 września 2021 w JavaScript przez Doge Gaduła (3,370 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...