У меня есть этот скрипт:
#!/bin/sh
while IFS= read -r -d "" f; do
ary+=("$f")
done < <(find ~/project/jobs -maxdepth 1 -mindepth 1 -type d -not -name "utils" -printf "\"%f\"\0")
(IFS=","; echo "[${ary[*]}]")
В нем должен быть указан список папок верхнего уровня my_folder, кроме того, который называется exclude. Это сделано в bash, но у меня нет bash на компьютере, на котором я его выполняю.
В результате чего выдается ошибка:
( В строке 3) Синтаксическая ошибка: слово неожиданное (ожидание ")")
Я хотел бы преобразовать его в sh, чтобы иметь возможность выполнить его.
I положить его на https://www.shellcheck.net/
и он дал мне ошибки:
Line 4:
while IFS= read -r -d "" f; do
^-- SC2039: In POSIX sh, read -d is undefined.
Line 5:
ary+=("$f")
^-- SC2039: In POSIX sh, += is undefined.
^-- SC2039: In POSIX sh, arrays are undefined.
Line 6:
done < <(find ~/project/jobs -maxdepth 1 -mindepth 1 -type d -not -name "utils" -printf "\"%f\"\0")
^-- SC2039: In POSIX sh, process substitution is undefined.
Line 8:
(IFS=","; echo "[${ary[*]}]")
^-- SC2039: In POSIX sh, array references are undefined.
Есть ли способ преобразовать его в sh? Как бы я поступил.