Медленный жесткий диск?

   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

2
04.05.2014, 19:10
1 ответ
[116339] Если жесткому диску придется перечитать либо плохой блок, либо плохой сектор, который начинает давать сбой, он попытается перечитать заданный участок несколько раз, пока не сможет это сделать. Такое поведение проявляется как "замедление" работы жесткого диска, но при этом происходит многократное чтение заданной области с диска.

Обычно, когда это происходит, я прогоняю жесткий диск через [116706]HDAT2[116707] или [116708]SpinRite[116709], чтобы определить, есть ли на диске плохие блоки и проинструктировать любого из этих двух инструментов, чтобы попытаться восстановить и/или восстановить данные из дефектных блоков.

Это только краткосрочное решение; обычно, если это продолжается, то это часто является симптомом более серьезной проблемы, что жесткий диск будет выходить из строя в недалеком будущем. В этом случае я начну планировать замену и перенос данных с проблемного диска до того, как он выйдет из строя"[116344].

2
27.01.2020, 22:13

Теги

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