Как вставить код к терминалу и выполнить его линию за линией? (это имеет sudo),

Как пример:

Когда я вставляю к терминалу следующий код:

wclean;
sudo bash;
wmake;

Это просит пароль для sudo bash, затем я должен ввести его (без проблем). Но это не продолжает идти. Это останавливается прежде wmake.

Затем

Как вставить весь пользовательский код к терминалу и выполнить его линию за линией? Я хочу простое решение, потому что эти коды, которые я вставляю, из Интернета, книг, учебных руководств...

1
задан 29 July 2016 в 22:24

6 ответов

Вставка нескольких команд сразу может привести к проблемам, если один из них ожидает терминального входа. В этой остальной части случая вставки будет взят в качестве входа для той команды и не в качестве отдельной команды, которая будет выполнена впоследствии. Наиболее распространенный пример, вероятно, sudo подсказка пароля.

Однако Bash способен к открытию текстового редактора для ввода команд, по умолчанию это nano. Вы запускаете редактора команды путем нажатия Ctrl + X , сопровождаемый Ctrl + E . Редактор запускается и все, что Вы ввели в текущую командную строку, до сих пор также появится там и может быть отредактирован. Если командная строка была пуста, хотя, редактор будет пуст также.

В редакторе можно теперь легко вставить или ввести несколько команд, просто поместить одну команду на строку, и Bash выполнит их один за другим. Можно также поместить целый сценарий там, он не имеет значения. Содержание, которое Вы пишете, внутренне сохраняется как временный файл и выполнилось почти как сценарий Bash. Единственная разница здесь - то, что, если у Вас есть несколько команд, Bash сначала распечатает саму команду прежде, чем выполнить его.

, Если Вы сделаны с редактированием и хотите отправить свой список команд, просто выйти из редактора ( Ctrl + X для nano). Это спросит Вас, сохранить ли изменения, и Вы отвечаете" Y es" и совершаете нападки Входят для принятия предложенного временного имени файла. Bash затем начнет выполнять все команды один за другим.

4
ответ дан 3 December 2019 в 06:39

В Вашем случае ответ должен изменить команды, которые Вы используете. Вы пытаетесь запустить оболочку удара как корень для выполнения команды. Очевидный способ выполнения этого должен просто работать sudo command. Так, все, в чем Вы нуждаетесь, должно скопировать, вставляют следующее непосредственно в Ваш терминал:

wclean
sudo wmake

Вы не нуждаетесь к первому показу sudo bash и затем wmake, работаете wmake с sudo непосредственно. Вам также не нужно ; в конце каждой команды. Эти ; только необходим, если Вы выполняете две команды на той же строке (например, comm1; comm2).

2
ответ дан 3 December 2019 в 06:39

Если Вы войдете как суперпользователь, то всю команду, которую Вы выполняете, предоставят с полномочиями суперпользователя, таким образом, никакой пароль не спросят.

Просто тип sudo su на терминальной подсказке прежде, чем вставить Ваши команды. Подсказка, должно быть, была изменена от $ до #.

0
ответ дан 3 December 2019 в 06:39

Простой, копия это и вставка в файле, и затем выполняют файл, Например:

nano test.sh
Ctrl+Shift+V [to paste the code]
Ctrl+O [Save it]
Ctrl+X [Exit]
chmod 755 test.sh
./test.sh

Аплодисменты

0
ответ дан 3 December 2019 в 06:39

Как @jiipeezz прокомментировал, нет, ничто неправильно с не не продолжается после sudo bash, потому что с этой командой Вы открываете новую оболочку. На самом деле завершая оболочку (с exit) следующая команда выполняется. Если Вы хотите выполнить команду wmake как суперпользователь, то необходимо передать команду как аргумент оболочке, с sudo bash -c 'wmake'. Попробуйте:

wclean;
sudo bash -c 'wmake';

, Но я не думаю, что имеет смысл выполнять единственную команду на новой оболочке, вместо этого это использует sudo для выполнения команды непосредственно.

0
ответ дан 3 December 2019 в 06:39

Вы могли изменить точки с запятой (;) с '& &'; без кавычек, в Вашем случае, например:

wclean &&
sudo bash &&
wmake 

BTW никакой '& &'; в конце.

Хорошо проводят день

-1
ответ дан 3 December 2019 в 06:39

Другие вопросы по тегам:

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