gpt4 book ai didi

linux - 什么是EOF!!在 bash 脚本中?

转载 作者:IT王子 更新时间:2023-10-28 23:53:17 24 4
gpt4 key购买 nike

有一个命令我不明白:

custom_command << EOF!!

我想问一下什么是EOF!!在 bash 脚本中。我确实用谷歌找到了 EOF,但谷歌会忽略“!!”自动,所以我找不到 EOF!!。

我知道文件标记的结尾,但我不完全知道“!!”是什么意思在脚本中。这是强制某事做某事的标记吗,就像在 vim 的 wq 中一样! ?

另外,我们为什么以及什么时候应该使用 EOF!!而不是 EOF?

最佳答案

在命令行中,!! 将扩展为最后执行的命令。 Bash 将为您打印该行:

$ ls
a.txt b.txt
$ cat <<EOF!!
cat <<EOFls
>

不过,在脚本中,默认情况下禁用历史扩展,因此感叹号是单词的一部分。

#! /bin/bash
ls
cat <<EOF!!
echo 1
EOFls
echo 2

产生:

a.txt  b.txt
script.sh: line 7: warning: here-document at line 3 delimited by end-of-file (wanted `EOF!!')
echo 1
EOFls
echo 2

要在脚本中启用历史记录和历史记录扩展,请添加以下行:

set -o history
set -H

关于linux - 什么是EOF!!在 bash 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com