Python потребляет слишком много SWAP

В этом случае вам вообще не нужно менять рабочий каталог (, как ответил Кусалананда ). Однако, если вы имеете дело с командами, которым действительно нужен конкретный рабочий каталог, вам нужно знать несколько вещей, которые облегчат вам задачу.

Во-первых, поскольку cdустанавливает переменную OLDPWD, мы можем использовать ее для возврата в исходный каталог, не зная его имени. Во-вторых, мы, вероятно, хотим вернуть, была ли команда выполнена успешно, поэтому используйте ;, а не &&там:

cd "$workdir" && somecommand ; cd "$OLDPWD"

Это по-прежнему ненадежно, если первый cdвыходит из строя; чтобы быть более надежным, нам действительно нужно

if cd "$workdir" ; then somecommand ; cd "$OLDPWD" ; fi

Даже на этом этапе мы боремся, нужен ли нам статус выхода somecommandпосле этого.


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

( cd "$workdir" && somecommand )

Последний подход я обычно использую и рекомендую, если только вы не делаете что-то, что невозможно из подоболочки, например, устанавливаете переменные для последующих команд.

0
02.07.2020, 13:16
1 ответ

Известная ошибка :«Утечка памяти в goferd на клиентах, подключенных к Red Hat Satellite 6.2.x, когда qrouterd недоступен».

0
18.03.2021, 23:22

Теги

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