我需要将多行bash代码粘贴到终端中,但是每当我粘贴时,每行都会在粘贴后立即作为单独的命令运行。
Answers:
我真的很惊讶这里没有提供答案,我正在寻找这个问题的解决方案,我认为这是最简单的方法,而且更加灵活/宽容...
如果您想将网站/文本编辑器等中的多行粘贴到bash中,无论是每行命令,函数还是整个脚本……都以a开头,以a (
结尾)
和Enter,例如在以下示例中:
如果我有以下斑点
function hello {
echo Hello!
}
hello
您可以通过以下方式使用bash在终端中粘贴和验证:
从...开始 (
粘贴文本,然后按Enter(使其变得漂亮)...
以a结尾)
并按Enter
例:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
粘贴的文本会自动继续,并在>
每行前添加一个前缀。我已经用每行,函数和整个脚本的命令测试了多行。希望这可以帮助其他人节省时间!
在行周围添加括号。例:
$ (
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
)
(
,括号{
在上面的示例中也将起作用
另一种可能性:
bash << EOF
echo "Hello"
echo "World"
EOF
iTerm完美地处理了多行命令,将多行命令保存为一个命令,然后我们可以使用Cmd
+ Shift
+ ;
导航历史记录。
在有效使用iTerm上 查看更多iTerm提示
尝试
out=$(cat)
然后粘贴您的行,然后按Ctrl-D(插入EOF字符)。直到Ctrl-D之前的所有输入都将重定向到cat的stdout。
$ out=$(cat) && eval "$out"
。在最后一行之后按Enter,然后按上述建议按CTRL + D。