завис на занятом ящике, попытка загрузить старый Linux с другого раздела

Обратите внимание, что при программировании оболочки команда returnиспользуется для передачи статуса функции, а не значения . Значения передаются через стандартный ввод и стандартный вывод. Это означает, что отладочные/подробные сообщения должны выводиться на stderr :

.
roll_dice() {
    local range=6
    local sum=0

    # add 2 random numbers
    for i in {1..2}; do
        (( sum += (RANDOM % range) + 1 ))
    done

    # "diagnostic" output to stderr
    echo "sum is $sum" >&2

    # values returned on stdout
    echo "$sum"
}

Тогда вы

play_game() {
    # first throw
    # capture the value using command substitution
    sum=$( roll_dice )

Если вы хотите сбросить диагностический вывод:

    sum=$( roll_dice  2>/dev/null )

Примечания:

  • непротиворечивость — это ключ к читаемому коду :либо поместите открывающую фигурную скобку на новую строку, либо на ту же строку, но не на обе сразу
  • не используйте имена переменных ALLCAPS :оставьте их зарезервированными для оболочки
  • в арифметическом выражении bash $не требуется для переменных
1
12.05.2021, 17:38
1 ответ

Тем не менее, весь раздел на моем sda6 немного перепозиционирован, извините за отсутствие лучшего термина. Мое долгое отчаяние оплачено, потому что нет фактической потери данных. Просто все важные файлы (и/)перемещаются в cwd, когда я делаю обновление, насколько я это помню.

enter image description here

Я надеюсь, что этот вопрос останется открытым, ожидая некоторой информации от сообщества. Неясен даже главный триггер такого рода сбоев. Я попытался скопировать /с живого компакт-диска, это не сделает раздел загрузочным.

0
28.07.2021, 11:34

Теги

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