for: for NAME [in WORDS ... ] ; do COMMANDS; done # the syntax Execute commands for each member in a list. # the member list refers to the [in WORDS ... ] part. # you see them in brackets because they are optional. The `for` loop executes a sequence of commands for each member in a list of items # the 'sequence of commands' refers to the COMMANDS part in the syntax. If `in WORDS ...;` is not present, then `in "$@"` is assumed. # if the optional [in WORDS ... ] isn't there, it will loop over each # positional parameter. For each element in WORDS, NAME is set to that element, and the COMMANDS are executed. Exit Status: Returns the status of the last command executed.
brace expansion
в Вашем примере не синтаксис на 'se, но он действительно предусматривает[in WORDS ... ]
из он - правильный синтаксис. Вы могли использовать что-либо, что приводит к выводу слов для него, чтобы быть корректным синтаксисом, но в зависимости от того, что Вы делаете, это может иметь неожиданные результаты. Как попытка считать строки текстового файла или соглашения с большими количествами через расширение фигурной скобки.bash -c 'for x in {1..1000000000000}; do :; done' bash: xmalloc: stringvec.c:40: cannot allocate 2909519884 bytes (94208 bytes allocated)
Начиная со всех
1000000000000
СЛОВА должны быть расширены до для выполнения цикла, если у Вас не будет поршня для него, то удар будет ошибка.Существует также c-стиль для циклов, которые имеют синтаксис
for (( exp1; exp2; exp3 )); do COMMANDS; done
которыйhelp for
также шоу.Если Вы интересуетесь тем, как учиться писать сценарий в ударе, я рекомендовал бы читать: http://mywiki.wooledge.org/BashGuide
Обычно, когда это происходит, я прогоняю жесткий диск через [116706]HDAT2[116707] или [116708]SpinRite[116709], чтобы определить, есть ли на диске плохие блоки и проинструктировать любого из этих двух инструментов, чтобы попытаться восстановить и/или восстановить данные из дефектных блоков.
Это только краткосрочное решение; обычно, если это продолжается, то это часто является симптомом более серьезной проблемы, что жесткий диск будет выходить из строя в недалеком будущем. В этом случае я начну планировать замену и перенос данных с проблемного диска до того, как он выйдет из строя"[116344].