heredoc 相关问题

Here-document是在源代码中编写文字字符串的特殊语法,由不同的编程语言使用。

在 PHP7.2 中使用 HEREDOC 语法时出现“语法错误,意外的 '' (T_ENCAPSED_AND_WHITESPACE)”,但 PHP7.4 没问题

if (array_key_exists('icon_path', $changedAttributes)) { $iconFile = $changedAttributes["icon_path"]; } 为什么 $iconFile = $changedAttributes["icon_path"];线给了我...

回答 1 投票 0

此处文档给出“意外的文件结尾”错误

我需要我的脚本从终端发送电子邮件。根据我在这里和网上许多其他地方看到的内容,我将其格式化如下: /var/mail -s "$SUBJECT" "$EMAIL" << EOF Here's a line of...

回答 9 投票 0

如果定界符为“”,如何使命令停止等待输入?

在 POSIX shell 中(在本例中我们考虑 bash),每当我们运行 cmd << eof, the shell expects input until a string containing only eof is received. Also, the standard states that: If...

回答 1 投票 0

在 zsh 中可以使用heredoc进行进程替换。如何让它在 bash 中工作?

我希望能够将定界文档传递给源命令以进行本地解释。 Heredoc 文档的主体将在稍后调用脚本之前注入,并且可以是多行的。 我上来了

回答 2 投票 0

当我已经在引用地狱时使用带有撇号的变量

我正在奔跑…… xargs -0 somescript -C << EOF drush ev 'somethingelse("$STRING",[]);' EOF somescript is a script I need to run and I do not control. It expects a command as an argu...

回答 1 投票 0

检查 oracle db 模式,因为另一个用户失败了

我试图通过执行以下代码来获取 Oracle DB 模式 - 如果它处于读写模式 - 但出现错误。 我试过: 状态=$(su - orasid -c "sqlplus "/as sysdba " \<\...

回答 1 投票 0

为什么 bash 在评估我的变量时插入了不需要的“'”?

我有这个脚本: #!/bin/bash TOKEN='faketokendgfhjkdhf' KEYNAME="test_$(日期+'%m-%Y')" 回显$KEYNAME KEYPATH="$HOME/.ssh/${KEYNAME}" 回显$KEYPATH SSHPHRASE="测试短语...

回答 1 投票 0

Docker 的 RUN 文档示例不起作用

我尝试实现Docker本身提供的示例(https://www.docker.com/blog/introduction-to-heredocs-in-dockerfiles/) # 语法=docker/dockerfile:1.3-labs 来自 ubuntu:20.04 奔跑<<...

回答 2 投票 0

MacBook 上的 Bash HereDoc 变量出现换行符错误

我有一个脚本可以在 Ubuntu 22.04 上使用 Bash 愉快地运行。但是,在 Arm MacBook 上的 bash (v 5.2) 下执行相同的脚本时,会开始出现错误。 以下是有问题的部分...

回答 1 投票 0

ubuntu:将多行写入文本文件[关闭]

我正在尝试将多行写入文本文件,如下所示: 猫 <> /etc/apache2/sites-available/eco.conf 服务器名称 eco.vagrant 文档根目录 /var/...

回答 2 投票 0

将常量(非变量)插入“heredoc”

考虑: my_const 的值为 {my_const}。 麦可; ?> 如果我将变量放在大括号内,它会...

回答 8 投票 0

如何cat <<EOF >>包含代码的文件?

我想使用 cat <> 将代码打印到文件中: 猫 <> Brightup.sh !/bin/bash curr=`cat /sys/class/backlight/intel_backlight/actual_brightness` 如果 [ $curr -lt 44...

回答 6 投票 0

在 bash 'heredoc' 中捕获标记词

bash 中“heredoc”字符串的开头通常看起来像 猫 < bash 中“heredoc”字符串的开头通常看起来像这样 cat <<EOF or cat << EOF 即两个小于号字符和标记词“EOF”之间可能有空格,也可能没有空格。我想捕捉标记词,所以我尝试以下 $ pcretest PCRE version 8.45 2021-06-15 re> "^\s*cat.*[^<]<{2}[^<](.*)" data> cat << EOF 0: cat << EOF 1: EOF data> cat <<EOF 0: cat <<EOF 1: OF 正如您在字符串中看到的,<< and EOF, I only catch "OF" and not "EOF". The expression must match exactly two less-than signs and fail if there are three or more. But why does it gobble up the 'E' so that only "OF" is returned?之间没有空格 在您的模式中,使用的是否定字符类 [^<],它与 < 以外的单个字符匹配,在本例中是字符串 E 中的 <<EOF 字符 对于您的示例和使用 pcre,您可以匹配前导空格,然后匹配 << 而无需后续 < ^\h*cat\h+<<(?!<)(.*) 模式匹配: ^ 字符串开头 \h* 匹配可选的水平空白字符 cat\h+ 匹配 cat 和 1+ 个水平空白字符 <<(?!<) 匹配 << 并直接断言不是 < 到右侧 (.*) 捕获第 1 组中的可选字符 查看 正则表达式演示

回答 1 投票 0

将多行变量切换到heredoc

我正在尝试将多行变量添加到将被放入 Markdown 文件中的定界文档中。 我的脚本如下所示: 降价=$(猫<<-EOF 测试 我正在尝试将多行变量添加到将被放入 Markdown 文件中的定界文档中。 我的脚本如下所示: markdown=$(cat <<-EOF <details> <summary>TEST</summary> ${output} </details> EOF ) echo "$markdown" >> test.md 其中output是多行字符串: this is a multiline string 当我运行脚本时,输出如下所示: <details> <summary>TEST</summary> this is a multiline string </details> 我怎样才能得到它,以便不仅仅是输出变量的第一行被正确标记?我尝试通过 sed 运行变量并添加选项卡,但这不起作用 你必须缩进它。你自己。例如,使用 sed 在每行前面添加 4 个空格: cat <<-EOF <details> <summary>TEST</summary> $(sed 's/^/ /' <<<"$output") </details> EOF 您可以用换行符和 4 个空格替换换行符: cat <<-EOF <details> <summary>TEST</summary> ${output//$'\n'/$'\n' } </details> EOF

回答 1 投票 0

如何将 sqlplus 与定界符和文件替换参数一起使用

因此,我尝试通过将要执行的脚本包装在“页眉”和“页脚”中,将一些默认配置应用于每次调用 sqlplus,以便获得一致的 exe...

回答 1 投票 0

bash HERE 文档评估

我在 bash 中发现了一个奇怪的问题 我使用 HERE-doc 如下 来源 <(cat << EOL | tee /tmp/buildvar_eval.sh TODAY=$(date +%y%m%d) PATH_JOB=$HOME PATH_SRC=${PATH_JOB}/aaaa PATH_OUT=${PATH_SRC}/bbbb

回答 1 投票 0

如何cat <<EOF >>包含代码的文件?

我想使用 cat <> 将代码打印到文件中: 猫 <> Brightup.sh !/bin/bash curr=`cat /sys/class/backlight/intel_backlight/actual_brightness` 如果 [ $curr -lt 44...

回答 7 投票 0

在 shell 脚本参数中以开发人员友好的方式编写 JSON

我有一个 shellscript,我需要将 JSON 作为函数参数传递 我想编写对开发人员友好的缩进代码,而不是编写难以维护的单行参数或多行参数...

回答 1 投票 0

这里是 PHP 文档

当 here 文档位于 php 的变量中时,如何调用 here 文档中的输入标签? 这是我的代码: 生成 ASCII 表 当 here 文档位于 php 的变量中时,如何调用 here 文档中的输入标签? 这是我的代码: <?php $myForm = <<<FORMSTUFF <h3>Generate ASCII Table</h3> <form action="$_SERVER[PHP_SELF]" method="post"> <label for="numRows">Number of rows:</label> <input type="text" name="numRows" id="numRows" value="32"> <br><br> <input type="submit" name="go" value="Create ASCII Table"> </form> FORMSTUFF; $numRows = $_POST['numRows']; ?> 我试过使用“get”而不是“post”,但没有用。我还尝试将“$_POST”替换为“$myForm”,但也没有用。your text 在 heredoc 中使用数组字符串索引的方式略有变化。此外,您还缺少用于有条件地处理处理的 POST 方法检查 <?php $myForm = <<<FORMSTUFF <h3>Generate ASCII Table</h3> <form action="{$_SERVER['PHP_SELF']}" method="post"> <label for="numRows">Number of rows:</label> <input type="text" name="numRows" id="numRows" value="32"> <br><br> <input type="submit" name="go" value="Create ASCII Table"> </form> FORMSTUFF; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $numRows = $_POST['numRows']; // your code comes here; return; } ?>

回答 1 投票 0

while 循环后不保留变量值

我正在写一个循环,它在变量 def 中累积字符串,从 heredoc 读取。循环退出后我看不到变量的值。 #!/usr/bin/sh 定义=“” 在阅读 x 时;做 ...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.