Как пример:
Когда я вставляю к терминалу следующий код:
wclean;
sudo bash;
wmake;
Это просит пароль для sudo bash
, затем я должен ввести его (без проблем). Но это не продолжает идти. Это останавливается прежде wmake
.
Затем
Как вставить весь пользовательский код к терминалу и выполнить его линию за линией? Я хочу простое решение, потому что эти коды, которые я вставляю, из Интернета, книг, учебных руководств...
Вставка нескольких команд сразу может привести к проблемам, если один из них ожидает терминального входа. В этой остальной части случая вставки будет взят в качестве входа для той команды и не в качестве отдельной команды, которая будет выполнена впоследствии. Наиболее распространенный пример, вероятно, sudo
подсказка пароля.
Однако Bash способен к открытию текстового редактора для ввода команд, по умолчанию это nano
. Вы запускаете редактора команды путем нажатия Ctrl + X , сопровождаемый Ctrl + E . Редактор запускается и все, что Вы ввели в текущую командную строку, до сих пор также появится там и может быть отредактирован. Если командная строка была пуста, хотя, редактор будет пуст также.
В редакторе можно теперь легко вставить или ввести несколько команд, просто поместить одну команду на строку, и Bash выполнит их один за другим. Можно также поместить целый сценарий там, он не имеет значения. Содержание, которое Вы пишете, внутренне сохраняется как временный файл и выполнилось почти как сценарий Bash. Единственная разница здесь - то, что, если у Вас есть несколько команд, Bash сначала распечатает саму команду прежде, чем выполнить его.
, Если Вы сделаны с редактированием и хотите отправить свой список команд, просто выйти из редактора ( Ctrl + X для nano
). Это спросит Вас, сохранить ли изменения, и Вы отвечаете" Y es" и совершаете нападки Входят для принятия предложенного временного имени файла. Bash затем начнет выполнять все команды один за другим.
В Вашем случае ответ должен изменить команды, которые Вы используете. Вы пытаетесь запустить оболочку удара как корень для выполнения команды. Очевидный способ выполнения этого должен просто работать sudo command
. Так, все, в чем Вы нуждаетесь, должно скопировать, вставляют следующее непосредственно в Ваш терминал:
wclean
sudo wmake
Вы не нуждаетесь к первому показу sudo bash
и затем wmake
, работаете wmake
с sudo
непосредственно. Вам также не нужно ;
в конце каждой команды. Эти ;
только необходим, если Вы выполняете две команды на той же строке (например, comm1; comm2
).
Если Вы войдете как суперпользователь, то всю команду, которую Вы выполняете, предоставят с полномочиями суперпользователя, таким образом, никакой пароль не спросят.
Просто тип sudo su
на терминальной подсказке прежде, чем вставить Ваши команды. Подсказка, должно быть, была изменена от $ до #.
Простой, копия это и вставка в файле, и затем выполняют файл, Например:
nano test.sh
Ctrl+Shift+V [to paste the code]
Ctrl+O [Save it]
Ctrl+X [Exit]
chmod 755 test.sh
./test.sh
Аплодисменты
Как @jiipeezz прокомментировал, нет, ничто неправильно с не не продолжается после sudo bash
, потому что с этой командой Вы открываете новую оболочку. На самом деле завершая оболочку (с exit
) следующая команда выполняется. Если Вы хотите выполнить команду wmake
как суперпользователь, то необходимо передать команду как аргумент оболочке, с sudo bash -c 'wmake'
. Попробуйте:
wclean;
sudo bash -c 'wmake';
, Но я не думаю, что имеет смысл выполнять единственную команду на новой оболочке, вместо этого это использует sudo для выполнения команды непосредственно.
Вы могли изменить точки с запятой (;) с '& &'; без кавычек, в Вашем случае, например:
wclean &&
sudo bash &&
wmake
BTW никакой '& &'; в конце.
Хорошо проводят день