Mam prostą pętlę w jednym z moich skryptów przetwarzania danych, która wygląda mniej więcej tak ...
for f in *.dat; do
process ${f}
done
Chciałbym zbudować wskaźnik stanu, więc chciałbym móc policzyć liczbę elementów *.dat
, ale nie mogę znaleźć żadnych wskazówek, a Google nie jest specjalnie przyjazny dla tego rodzaju wyszukiwania.
"${f}"
, aby radzić sobie z plikami zawierającymi białe znaki lub znaki globujące.Odpowiedzi:
Z tablicami Bash:
Aby to złamać,
${arr[@]}
daje ci każdy element tablicy i#
podaje liczbę w ekspansji parametrów (faktycznie da ci długość łańcucha, ale dla tablic jest to liczba).Zobacz także na Wiki Bash Hackers:
źródło