Ваш скрипт не работает по нескольким причинам:
var
, чтобы он был равен результату выполнения команды | wc -m
, потому что mystring
в этот момент равен нулю. wc
. Вы должны A> делать что-то в правильном порядке и ii.> делать что-то правильно:
read -p "Type something > " mystring
var="$( wc -m <<< "$foo" )"
echo $(($var-1))
Есть две разные вещи:
файловая система, структура данных, позволяющая хранить отдельные именованные файлы, и
блочное устройство (диск, раздел, том LVM ), внутри которого находится файловая система
resize2fs
изменяет размер файловой системы , то есть изменяет структуры данных в ней, чтобы использовать новое пространство или помещать их в меньшее пространство. Это не влияет на размер базового устройства.
lvresize
изменяет размер тома LVM, но ему совершенно все равно, что в нем находится.
Итак, чтобы уменьшить том, вы должны сначала уменьшить файловую систему до нового размера (resize2fs
), а после этого вы можете изменить размер тома до нового размера(lvresize
). Если вы сделаете это другим способом, файловая система будет повреждена при изменении размера устройства.
Но чтобы увеличить размер тома, вы сначала изменяете размер тома, а затем файловой системы. Сделав это наоборот, вы не могли бы увеличить файловую систему, так как не было нового места для использования (еще ).