here-document

Bash 4:寻找匹配的“)”时出现意外的 EOF
here-document

Bash 4:寻找匹配的“)”时出现意外的 EOF

我的脚本的这个非常简化的版本 #!/usr/bin/env bash example="$(bash -rs <<'BASH' -- 'This has been executed in restricted shell' echo "$1" BASH )" echo "$example" 在 bash 版本 5.1.4 的系统上执行没有问题。但是,在另一个 bash 版本 4.0.44 的系统上,我收到错误 line 2: unexpected EOF while looking for matching `)' 如果我将脚本更改为 #...

Admin

如何将变量传递到从 bash 脚本外部打印的文件?
here-document

如何将变量传递到从 bash 脚本外部打印的文件?

假设我有一个变量v="c d e f g"和一个包含以下内容的文件: line1 $v line3 如何让 bash 脚本使用第 2 行中变量的内容打印此文件,就像我使用这样的此处文档一样: #!/bin/bash v="c d e f g" cat << EOF line1 $v line3 EOF 输出: line1 c d e f g line3 ...

Admin

“此处文档”作为单行命令?
here-document

“此处文档”作为单行命令?

我有这个命令在我想安装的一些软件中运行校验和: echo "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | sha256sum -c 但我想将它与sha256sum命令一起使用第一的。所以我们使用heredoc来实现: sha256sum -c << EOF 85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh EOF 但现在我希望这一...

Admin

如何在 perl 中结合 ...if $x 和here-doc?
here-document

如何在 perl 中结合 ...if $x 和here-doc?

一个人应该怎样写这个呢? print <<EOF; if $x bla EOF 我认为它被称为后缀表示法和此处文档。我收到语法错误。 好吧,我想我会用 print "bla" if $x; 是的,这就是我想要的。 ...

Admin

通过 ssh 脚本测试 dir - 没有任何反应
here-document

通过 ssh 脚本测试 dir - 没有任何反应

我通常使用此处文档运行这样的服务器脚本。 但是,当我测试目录是否存在时,即使测试失败,脚本仍会继续 - 为什么? ssh $user@$ip /bin/bash <<SCRIPT if [[ ! -d ~/.debfiles ]];then echo "Error: debfiles doesnt exist" 2> ~/error.txt exit 1 fi SCRIPT 我从本地计算机运行此程序,并且有问题的服务器是虚拟机。 ...

Admin

如何在 ssh 命令中使用heredoc
here-document

如何在 ssh 命令中使用heredoc

我有一个 bash 脚本,它通过 SSH 连接到远程计算机并运行一系列命令。 外部脚本中的heredoc似乎没有正确对齐,并且我不断收到错误。 -bash: line 49: warning: here-document at line 6 delimited by end-of-file (wanted `MOD') 这是脚本: ssh -i "$master_private_key" "$master_username@$master_public_ip" << EOF # disable swap sudo swapoff...

Admin

如何将脚本文件作为定界文档传递给 sed?
here-document

如何将脚本文件作为定界文档传递给 sed?

这会将“a”转换为“A”。 sed 's/a/A/g' <(echo "foobar") foobAr 这提供了使每个元音变为大写所需的命令: $ cat << EOF s/a/A/g s/e/E/g s/i/I/g s/o/O/g s/u/U/g EOF 我想做的是扩展第一个示例,以便使每个元音大写,并使用此处的文档,如第二个示例中所示。有什么建议吗? 男人: sed [选项]... {仅脚本,如果没有其他脚本} [输入文件]... -f script-file, --file=script-file 将 script-file 的...

Admin

是否可以使用 HEREDOC 运行 sudo?
here-document

是否可以使用 HEREDOC 运行 sudo?

编辑:@Kusalananda 回答后修改示例。我的整个情况更加复杂。我需要多个命令和变量定义) 我无法使用,su因为我不是 root 并且我不想输入密码 我尝试模仿来自同事脚本的 su 代码: # script runs as root su - oracle -- "export DATA=$val; cat <<CHK test CHK" Password: test 以下不起作用(错误输出): $ export val=534 $ sudo -i -u oracle -- "export DATA=$val;cat <<C...

Admin

如何为 podman 运行提供heredoc?
here-document

如何为 podman 运行提供heredoc?

当我运行时buildah,我通常使用heredoc, ctr=$(buildah from alpine:3); buildah run $ctr sh -- <<EOF apk update; apk add git; EOF buildah commit $ctr heredoc_demo; 然而,当我尝试用 podman 做同样的事情时,我收到这样的错误, 警告[0000] 输入设备不是 TTY。 --tty 和 --interactive 标志可能无法正常工作 你可以得到, ❯ podman run -ti alpine...

Admin

如何在此处的文档中连接结果?
here-document

如何在此处的文档中连接结果?

我有这个脚本: while read $item; do # Some bash logic here done <<< "$({ cat /path/to/some/file; echo; })" 现在我还想用来find查找一些目录的名称,并将其与循环一起cat传递while。 换句话说,我想: cat一份文件 find一些目录 连接结果 将它们作为此处文档送入while循环 我被困在这一点上。 我想到了重复while逻辑,这不是一个好方法。我还考虑while使用函数重用循环内的逻辑。 然而,连接此处文档中的内容似乎是正确的...

Admin

什么时候有人会选择使用限制字符串 (
here-document

什么时候有人会选择使用限制字符串 (

The - option to mark a here document limit string (<<-LimitString) will suppress leading tabs (but not spaces) in the output. 我想知道为什么有人在使用“此处”方法处理命令时想要删除前导选项卡。是关于输出的可读性,还是关于清理输出(如果我们想将其传递给其他东西)? ...

Admin

无法捕获在定界文档内运行的脚本的退出代码
here-document

无法捕获在定界文档内运行的脚本的退出代码

我在尝试捕获在 Docker 容器的 Heredoc 中运行的脚本的退出代码时陷入困境。 假设我想运行此命令来启动一个加载了 的 Docker 容器python:3.7,并在其中执行一个heredoc。 docker run -v $PWD:/workspace -w /workspace --rm -i python:3.7 <<-EOF ./script.sh echo $? EOF 假设script.sh看起来像这样: echo 'Before' exit 1 echo 'After' 当我运行它时,我没有得到 Befo...

Admin

使用 HEREDOC 在 shell 脚本内与不同用户循环数组不起作用
here-document

使用 HEREDOC 在 shell 脚本内与不同用户循环数组不起作用

我想在运行脚本时在不同用户内执行一组操作,因此我使用 HEREDOC 来执行此类操作,但无论我尝试什么替代方案,我都无法在 HEREDOC 内的循环中引用我的值。 在这种情况下,它打印第一行并退出。 #!/bin/bash func () { test=("$@") sudo su - someuser <<- EOF echo "${test[*]}" for i in "${test[@]}" ; do echo "$i" done EOF } arrVar=("AC" "TV" "Mobile"...

Admin

我可以在此处文档中使用 Bash 脚本逻辑吗?
here-document

我可以在此处文档中使用 Bash 脚本逻辑吗?

我有 50 个 Linux 服务器的列表,我需要通过 SSH 访问这些服务器并检查 .conf 文件中的键值对配置参数是否已设置。我需要检查键值对是否存在。如果键值对确实存在,我需要将布尔值修改为FALSE。如果键值对不存在,我需要创建值设置为 FALSE 的键值对。 我对 SSH 部分以及使用此处文档在远程服务器上执行命令列表没有任何问题。然而,这个特定的解决方案需要远程服务器上的一些 bash 逻辑来检查键值对并根据结果执行操作。有没有办法将 bash 脚本逻辑合并到此处文档中?如果没有,处理这种特殊情况的替代方法是什么? 我想我可以在每台服务器上都有一...

Admin

为什么这个循环是针对空集执行的?
here-document

为什么这个循环是针对空集执行的?

创建一个空目录,然后运行以下代码: find /empty_directory -mindepth 1 -maxdepth 1 -type d | while read dir; do echo "Simple find: $dir" done printf '%s\n' '-----' # Safer than echo ----- while read dir; do echo "HereDoc find: $dir" done <<< "$(find /empty_dire...

Admin