在Linux和Shell脚本中,EOF(End Of File)是一个用于标记文本块结束的标识符,常见于输入重定向或多行文本输入的场景。以下是详细说明:
<<(here document)或 <<<(here string)结合使用,用于向命令传递多行输入。cat > output.txt << EOF
这是第一行
这是第二行
这是EOF标记前的最后一行
EOF
EOF 之间的内容写入 output.txt 文件。EOF 必须单独一行且顶格写,前后不能有空格。mysql -u user -p << EOF
USE database;
SELECT * FROM table;
EOF
EOF(如 END、STOP),但需前后一致:
bash
cat << END
自定义分隔符
ENDbash
cat << 'EOF'
这里的 $PATH 不会被展开
EOF<<- 并配合制表符(Tab):
bash
cat <<- EOF
缩进的内容(必须用Tab,空格无效)
EOFwarning: here-document delimited by end-of-file:通常因未正确闭合EOF(如漏写或拼写错误)。cat 结合:cat << EOF 常用于动态生成配置文件或脚本。bash
read -r -d '' message << EOF
这是一个
多行字符串
EOFbash
ssh user@host << EOF
echo "远程执行命令"
EOFEOF 是Shell脚本中标记多行输入结束的灵活工具,通过 << 重定向实现高效的数据传递。理解其语法细节(如自定义分隔符、变量抑制、缩进处理)能显著提升脚本编写效率。