有一个命令,我不明白:什么是EOF!在bash脚本中?
custom_command << EOF!!
我要问EOF!在bash脚本中。我确实发现谷歌EOF,但谷歌会忽略“!!”自动,所以我找不到EOF !!。
我知道文件标记的结尾,但我不完全知道它是什么意思与“!!”在脚本中。这是一个标志,迫使某些事情在vim的wq中做一些事情! ?
另外,为什么和什么时候应该使用EOF!而不是EOF?
有一个命令,我不明白:什么是EOF!在bash脚本中?
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
The bash manual列出了该"Event designators"下,他说:
!!
参考以前的命令。这是!-1`的同义词。
我只是搜索“bash manual double exclamation”。
正如其他人已经写,这是这里的文档。
用于此的令牌应该仔细选择;因为这里的文件包含EOF!!
的概率比EOF
本身要低,所以他们选择了这个概率。
我想他们在使用前检查了它并没有伤害;脚本中的!!
不引用历史记录,但保持原样。
它是“文件结束” – Juangcg
http://webapps.stackexchange。COM/Q/1479;不是它会帮助你在这里... – Ben
[Heredoc](http://en.wikipedia.org/wiki/Here_document)! – devnull