Unset Reatable, а затем используйте его значение

Вы можете попробовать pvresize --setphysicalvolumesize 6.51G /dev/sda1. Я почти уверен, что это не сработает, потому что, скорее всего, lv_swap выделен за границей 6.51G.

Поэтому я думаю, что вам следует удалить и заново создать lv_swap:

swapoff /dev/VolGroup/lv_swap
lvremove /dev/VolGroup/lv_swap
pvresize --setphysicalvolumesize 6G /dev/sda2

Затем измените размер раздела примерно до 6.5G (или чуть больше). После этого нужно выполнить pvresize /dev/sda2, чтобы вернуть место, образовавшееся в результате "немного большего". Затем вы можете воссоздать lv_swap:

lvcreate -n lv_swap -l 100%FREE VolGroup
mkswap /dev/VolGroup/lv_swap
swapon /dev/VolGroup/lv_swap
1
15.07.2018, 13:58
4 ответа

Если вы используете оболочку, которая поддерживает локальные переменные, такие как ksh, bash или zsh, поместите весь код в функции и объявите все переменные локальными.

С простым sh вы можете использовать evalдля выполнения раскрытия переменной перед использованием значения. Статус возврата содержит только цифры, так что вам даже не нужны сложные кавычки.

eval "unset return_status; return $return_status"
4
27.01.2020, 23:43

Я использовал STDOUT, чтобы сохранить копию содержимого переменной:

# Unset a variable and then use its value afterwards
echo $_return_val | { unset _return_val; return "$(cat)"; }
0
27.01.2020, 23:43

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

Это, конечно, имеет смысл только в том случае, если вы хотите применить метод более чем к одной переменной. Вы можете использовать переменную $REPLY, которая является неотъемлемой частью различных оболочек.

Обратите внимание, что нет никаких гарантий, что { cmd; }не создает подоболочку, поэтому даже вызов unsetв такой конструкции может не относиться к основной оболочке.

Использование

echo "$_return_val" && unset _return_val

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

-3
27.01.2020, 23:43

Вы можете использовать функцию с локальными переменными

return_exit () {
    local code=${!1}
    unset "$1"
    return "$code"
}

Тогда назовите это как:

return_exit _return_val
0
27.01.2020, 23:43

Теги

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