Можем ли мы прочитать имя переменной как значение параметра при выполнении командной строки Bash?

Boot into single-user mode

Это не был однопользовательский -режим с 1995 года. У вас есть аварийный режим и режим спасения . Любой из них подойдет для ваших целей, так как предположительно chmodи sudoнаходятся в корневой файловой системе. (В том маловероятном случае, если /usrнаходится в отдельной файловой системе, выберите режим восстановления. Также выберите режим восстановления, если в аварийном режиме вы обнаружите, что ваша файловая система /смонтирована только для чтения -.)

Когда появится меню GRUB, выберите параметр «режим восстановления», если он у вас есть. Если у вас его нет, используйте e , чтобы отредактировать свой обычный выбор начальной загрузки и добавить -sили -bв командную строку ядра для режима восстановления и аварийного режима соответственно. и #x2388; Управление + X загружается с отредактированной командной строкой, разумеется.

  • Не используйте systemctl set-default, так как это навсегда изменит способ запуска вашей операционной системы. Вам нужна однократная -модификация, чтобы после этого можно было вернуться к обычной начальной загрузке без дополнительных усилий.
  • Забудьте об уровнях запуска -. Не начинайте изучать их. systemd не имеет их на самом деле. Изучите парадигмы, которые на самом деле имеет ваша операционная система.
  • Вы можете использовать другие параметры командной строки ядра, такие как emergency, 1, systemd.unit=emergency, single, Sи так далее. -sи -bнаиболее широко распространены во многих наборах инструментов управления системой, а не только в systemd, и являются оригинальными опциями 1995 года.
  • Имейте в виду, что все, что вы сделали, испортили sudo, вероятно, вызвало дальнейшие проблемы в вашей системе.

Mint может предоставить вам пункт меню GRUB «режим восстановления». Вы тоже можете использовать это. Однако это не одна из целей начальной загрузки systemd. (Он запускает программу с именем /lib/recovery-mode/recovery-menuчерез дополнительную цель systemd, установленную дружественным -пакетом восстановления . )«Режим восстановления» в Ubuntu и производных не является режимом восстановления .

Дополнительная литература

2
22.11.2020, 06:24
1 ответ

Для оболочки bashвы можете использовать getoptsдля разбора параметров командной строки.

Изhttps://sookocheff.com/post/bash/parsing-bash-script-arguments-with-shopts/

A common task in shell scripting is to parse command-line arguments to your script. Bash provides the getopts built-in function to do just that. This tutorial explains how to use the getopts built-in function to parse arguments and options to a bash script.

Пример:

while getopts ":f:l:" opt; do
  case ${opt} in
    f )
      firstnum=$OPTARG
    l )
      lastnum=$OPTARG
      ;;
    \? )
      echo "Invalid option: $OPTARG" 1>&2
      ;;
    : )
      echo "Invalid option: $OPTARG requires an argument" 1>&2
      ;;
  esac
done
shift $((OPTIND -1))

Я предлагаю использовать простые параметры char:

script.sh -f 123 -l 456

, где -f— первое, а -l— последнее.

3
18.03.2021, 22:48

Теги

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