标签: heredoc

使用heredoc创建新的文本文件

在我的shell脚本中,我使用heredoc块来动态创建文件.什么是python等价物?

cat > myserver.pem << "heredoc"
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAnTsiYssvsuM1DRjyhqD8+ZB8ESqUFHgzeBYONp3yqjK8ICw/LRrxjXGXidAW
aPBXfktv3zN/kFsLMEFJKrJs/TLCfXG1CwFHMZzJRLM4aE6E0j6j+KF96cY5rfAo82rvP5kQdTIm
-----END RSA PRIVATE KEY-----
heredoc
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个简单的解决方案.我非常喜欢上面的shell脚本代码.我可以在python中"按原样"使用它吗?

python heredoc

8
推荐指数
1
解决办法
2736
查看次数

在后台使用HERE_DOC方法运行脚本

我有一个应该在后台运行的脚本.我一打运行bash就必须回答一个问题.我怎么能这样做?

(nohup python script.py lst '<<HERE yes HERE' &)
Run Code Online (Sandbox Code Playgroud)

bash background heredoc

8
推荐指数
1
解决办法
2502
查看次数

php heredocs语法里面的条件语句?

我想知道你是否可以在heredocs中有条件语句,这是我的脚本,但它deosnt正确解析$ username?

php代码:

function doSomething($username) {

if (isset($_SESSION['u_name'])){
$reply ='<a class ="reply" href="viewtopic.php?replyto=@$username.&status_id=$id&reply_name=$username"> reply </a>';

return <<<ENDOFRETURN

$reply

ENDOFRETURN;
Run Code Online (Sandbox Code Playgroud)

这个问题是在html上呈现的$ username变量deosnt.它仍然是$ username :))谢谢

php conditional heredoc

7
推荐指数
2
解决办法
9761
查看次数

这两个Perl片段有什么区别?

print <<EOF
stuff
EOF
;


print <<EOF;
stuff
EOF
Run Code Online (Sandbox Code Playgroud)

你为什么要用另一个呢?

perl heredoc

7
推荐指数
2
解决办法
1257
查看次数

Perl在这里 - 文档无法正常工作

我一直在尝试使用Here-documents但它不起作用.可能有什么问题?我错过了一些明显的东西吗

这是我正在尝试运行的文件的全部内容(在任何地方都没有空格或标签):

print<<EOF;
text
EOF
Run Code Online (Sandbox Code Playgroud)

我通过将它保存在记事本或记事本++中作为一个名为3.pl的文件来运行它
然后进入Windows 7下的DOS窗口并键入:perl 3.pl 我收到此消息:

在3.pl第1行的EOF之前的任何地方都找不到字符串终止符"EOF".

perl heredoc

7
推荐指数
1
解决办法
3792
查看次数

访问<<< HTML in php中的定义变量

我试图弄清楚如何<<<HTML在php中使用时使用已定义的变量.这是我想要实现的一个例子:

<?php
define('TEST','This is a test');
echo <<<HTML
Defined: {TEST}
HTML;
?>
Run Code Online (Sandbox Code Playgroud)

获取定义的"TEST"的适当方法是<<<HTML什么?

编辑:
我做了一个小测试来检查哪一种方法最快.对于我的测试,我在heredoc中使用了20个变量.以下是使用不同方法(以秒为单位)发生的事情:
访问<<< HTML in php中的定义变量似乎是最慢的方法 - 0.00216103.
访问<<< HTML in php中的定义变量更快 - 0.00073290.
访问<<< HTML in php中的定义变量甚至更快 - 0.00052595.
访问<<< HTML in php中的定义变量是最快的 - 0.00011110.

希望这有助于别人:)

php constants heredoc

7
推荐指数
2
解决办法
3936
查看次数

我不明白为什么string.size返回它的作用

long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS
Run Code Online (Sandbox Code Playgroud)

返回53.为什么?空白有多重要?即便如此.我们怎么得到53?

这个怎么样?

     def test_flexible_quotes_can_handle_multiple_lines
    long_string = %{
It was the best of times,
It was the worst of times.
}
    assert_equal 54, long_string.size
  end

  def test_here_documents_can_also_handle_multiple_lines
    long_string = <<EOS
It was the best of times,
It was the worst of times.
EOS
    assert_equal 53, long_string.size
  end
Run Code Online (Sandbox Code Playgroud)

是这种情况,因为%{case将每个/n字符统计为一个字符,并且在第一行之前认为是一个字符,一个在结尾处,然后在第二行结尾处,而在这种EOS情况下只有一个在第一行之前线和一线后一线?换句话说,为什么前者54和后者53?

ruby heredoc

7
推荐指数
1
解决办法
461
查看次数

/ dev/stdin与herestring

我想要一个可以从文件或标准输入获取输入的Bash脚本,grep例如,非常类似

$ cat hw.txt
Hello world

$ grep wor hw.txt
Hello world

$ echo 'Hello world' | grep wor
Hello world

$ grep wor <<< 'Hello world'
Hello world
Run Code Online (Sandbox Code Playgroud)

一切都很美妙.但是使用以下脚本

read b < "${1-/dev/stdin}"
echo $b
Run Code Online (Sandbox Code Playgroud)

如果使用herestring它会失败

$ hw.sh hw.txt
Hello world

$ echo 'Hello world' | hw.sh
Hello world

$ hw.sh <<< 'Hello world'
/opt/a/hw.sh: line 1: /dev/stdin: No such file or directory
Run Code Online (Sandbox Code Playgroud)

bash stdin cygwin heredoc

7
推荐指数
1
解决办法
8894
查看次数

带有heredoc的猫在zsh shell中不起作用

当我尝试

cat > myfile << EOF
TEST TEXT
EOF
Run Code Online (Sandbox Code Playgroud)

我只是得到一个空文件。使用echo命令相同。这是怎么回事?我只能考虑.zshenv配置文件中的一些冲突,但我不知道它可能是什么......

我正在使用zsh 4.3.6 (x86_64-suse-linux-gnu).

shell zsh heredoc cat

7
推荐指数
2
解决办法
4958
查看次数

Heredoc在码头工程师

我基本上试图让Flask-migrate的shell使用Flask应用程序上下文执行heredoc

下面是我试图在我的bash脚本中运行的命令

$ docker exec -it mycontainer ./manage shell <<-EOF
    # shell commands to be executed
EOF
Run Code Online (Sandbox Code Playgroud)

当我尝试执行上述命令时,我得到:

cannot enable tty mode on non tty input

这是管理文件:

#!/usr/bin/env python

from middleware import create_app, config
from middleware.models import db

from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand


app = create_app(config)
migrate = Migrate(app, db)

manager = Manager(app)
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()
Run Code Online (Sandbox Code Playgroud)

我的问题是有一种方法可以将像heredoc这样的命令传递给shell吗?

python bash shell heredoc docker

7
推荐指数
1
解决办法
2078
查看次数

标签 统计

heredoc ×10

bash ×3

perl ×2

php ×2

python ×2

shell ×2

background ×1

cat ×1

conditional ×1

constants ×1

cygwin ×1

docker ×1

ruby ×1

stdin ×1

zsh ×1