ЕСЛИ ELSE сравнение строк из curl

Хорошо! Окончательный ответ. Мои шаги по расширению зашифрованного тома LUKS ...

  1. cryptsetup luksOpen / dev / sda2 crypt-volume , чтобы открыть зашифрованный том.
  2. parted / dev / sda для расширения раздела. размер части КОНЕЦ НОМЕРА .
  3. vgchange -a n fedora_chocbar . Прекратите использовать VG, чтобы перейти к следующему шагу.
  4. cryptsetup luksClose crypt-volume . Закройте зашифрованный том для следующих шагов.
  5. cryptsetup luksOpen / dev / sda2 crypt-volume . Откройте его снова.
  6. cryptsetup изменить размер тома крипты . Автоматически изменит размер тома LUKS до доступного пространства.
  7. vgchange -a y fedora_chocbar . Активируйте VG.
  8. pvresize / dev / mapper / crypt-volume . Измените размер PV.
  9. lvresize -l + 100% БЕСПЛАТНО / dev / fedora_chocbar / home . Измените размер LV для / home до 100% свободного места.
  10. e2fsck -f / dev / mapper / fedora_chocbar-home . Бросьте немного магии fsck в измененный размер fs.
  11. resize2fs / dev / mapper / fedora_chocbar-home . Измените размер файловой системы в / home (автоматически использует 100% свободного места)

Я надеюсь, что кто-то еще сочтет это полезным. Теперь у меня на ноутбуке более 300 ГБ для тестовых виртуальных машин!

2
05.02.2017, 21:53
1 ответ

Значение в $ VAR_A имеет завершающий \ r (возврат каретки) в конце, что приводит к сбою сравнения строк. У него будет возврат каретки, поскольку это заголовок HTTP, и конец строки маркер в заголовках HTTP указан в RFC2616 как \ r \ n .

Один из способов исправить это:

VAR_A=$(curl -Is --head "$URL_CURL_CHECK" | grep "HTTP/1.1 200 OK" | tr -d '\r')

tr -d '\ r' удалит все символы возврата каретки.

Другой вариант - заставить grep возвращать только совпавший текст (который будет в точности строкой HTTP / 1.1 200 OK ):

VAR_A=$(curl -Is --head "$URL_CURL_CHECK" | grep -o "HTTP/1.1 200 OK")

В любом случае вы можете захотеть использовать -F с grep здесь, поскольку строка является фиксированной строкой, а не регулярным выражением:

VAR_A=$(curl -Is --head "$URL_CURL_CHECK" | grep -F -o "HTTP/1.1 200 OK")

Ваш сценарий также использует else с условием. Либо используйте только else , либо используйте elif с условием. В этом случае просто удалите условие.

4
27.01.2020, 21:59

Теги

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