shellcheck: "В POSIX sh, ulimit -H не поддерживается"

Если вы нашли похожее на это . Вы должны иметь возможность сделать что-то вроде:

find dir -name '*_tstaAligned.SortbyCoord.bam' -exec bash -c 'mv "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;

Хотя используется bash $ {var // find_all / substitute_with_this} , вы сопоставите только файлы, заканчивающиеся на _tstaAligned.SortbyCoord.bam , так как это образец, данный для find . Однако вы должны заменить каждое вхождение _tstaAligned.SortbyCoord.bam в имени, если в каком-либо файле их несколько. (Маловероятно, я думаю.)

Для тестирования сделайте что-нибудь вроде:

find dir -name '*tstaAligned.SortbyCoord.bam' -exec bash -c 'printf "mv \"%s\" \"%s\"\n" "$0" "${0/_tstaAligned.SortbyCoord.bam/_tsta.bam}"' "{}" \;

2
12.03.2019, 19:00
1 ответ

Ну, строго говоря, POSIX ulimit, кажется, знает только -fпараметр (максимальный размер файла ), поэтому я полагаю, что ответ "нет".

На практике все оболочки, которые у меня есть в Linux (Bash, Busybox, Dash, Ksh, mksh, yash, zsh ), имеют встроенную ulimit, которая поддерживает -H, -Sи -n.

Я точно не знаю о системах, отличных от -Linux, но справочная страница FreeBSD дляsh(1)также упоминает их, а в OpenBSD/bin/shвыглядит как ksh , что также поддерживает их.

3
27.01.2020, 22:02

Теги

Похожие вопросы