Мне нужно вставить многострочный bash код в терминал, но всякий раз, когда я это делаю, каждая строка запускается как отдельная команда, как только она вставлена.
Как вставить многострочные коды bash в терминал и запустить все сразу?
Ответ 1
Попробуйте положить \
в конце каждой строки перед копированием.
Ответ 2
Если вы нажмете команду C-x C-e
, которая откроет ваш редактор по умолчанию, который определит .bashrc
, после этого вы сможете использовать все мощные функции вашего редактора. Когда вы сохраните и выйдете, строки будут ждать ввода.
Если вы хотите определить свой редактор, просто напишите для Ex. EDITOR=emacs -nw
или EDITOR=vi
внутри ~/.bashrc
Ответ 3
В дополнение к обратному косую черту, если строка заканчивается на |
или &&
или ||
, она будет продолжена на следующей строке.
Ответ 4
Я действительно удивлен, что этот ответ здесь не предлагается, я искал решение этого вопроса, и я думаю, что это самый простой подход и более гибкий/прощающий...
Если вы хотите вставить несколько строк из веб-сайта/тестового редактора/и т.д. в bash, независимо от того, будет ли он командовать на строку или функцию или весь script... просто начните с (
и закончите с помощью )
и Enter, как в следующем примере:
Если у меня был следующий blob
function hello {
echo Hello!
}
hello
Вы можете вставлять и проверять в терминале с помощью bash по:
1) Начиная с (
2) Вставка текста и нажатие Enter (чтобы сделать его красивым)... или нет
3) Завершение с помощью )
и нажатие Enter
Пример:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
Вставляемый текст автоматически продолжается с добавлением >
для каждой строки. Я тестировал несколько строк с командами на строку, функции и целые скрипты. Надеюсь, это поможет другим сэкономить время!
Ответ 5
Чтобы предотвратить длинную строку команд в текстовом файле, я сохраняю свои фрагменты в виде копии:
echo a;\
echo b;\
echo c
Ответ 6
Добавьте круглые скобки вокруг строк. Пример:
$ (
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)
Ответ 7
Try
out=$(cat)
Затем вставьте свои строки и нажмите Ctrl-D (введите символ EOF). Весь ввод до Ctrl-D будет перенаправлен на cat stdout.
Ответ 8
Почему бы не импортировать его из файла?