Когда переменная является локальной, а когда глобальной?

Монтирование скрывает или затеняет все, что уже присутствует в данном каталоге (это может вызвать забавные проблемы, если права в затененном таким образом каталоге неверны). Таким образом, когда монтирование tmpfs будет удалено, исходный материал останется. (Если необходимо сохранить кеш, вы можете mv / var / cache /var/cache.save, а затем выполнить rsync после первого монтирования tmpfs и до его размонтирования, но это еще больше усложняет ситуацию.)

{ {1}}
-1
22.12.2017, 08:10
1 ответ

Я хочу поблагодарить всех за комментарии, в которых упоминается подоболочка. Однако я хочу дать более развернутый ответ.

Каждый раз, когда f1вызывается из f2, будет создаваться новая подоболочка, и будут выполняться только 3 инструкции.

    f1() {
1      if [ "$a" == "" ]; then
2        a="0";
      else
        a=$(($a+1));
      fi;
3      echo "$a";
    }

aстановится глобальным и инициализируется в подоболочке (по крайней мере в моей системе, потому что повторяющиеся f1вызывают incrementa). Но aне существует в следующей созданной подоболочке.

0
28.01.2020, 05:12

Теги

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