怎么在 shell 中用 cat>test1<<EOF 写入文件时不输出 EOF 的变量?

2014-08-03 02:48:00 +08:00
 kchum
例如
cat>test1<<EOF
$title
$(git-config --get --bool core.bare)
$(cd $GIT_DIR; pwd)
$1
$GIT_DIR/logs/HEAD
$(git rev-parse HEAD)
$$
$(cd $GIT_DIR; pwd)
${GIT_WORK_TREE-..}
EOF

需求:test1的内容显示
$title
$(git-config --get --bool core.bare)
$(cd $GIT_DIR; pwd)
$1
$GIT_DIR/logs/HEAD
$(git rev-parse HEAD)
$$
$(cd $GIT_DIR; pwd)
${GIT_WORK_TREE-..}

不太熟shell
放狗搜,没有找到解决方案
求大神帮看看,非常感谢
6636 次点击
所在节点    问与答
6 条回复
chunyang
2014-08-03 03:40:48 +08:00
没看懂你想干嘛。

$ cat > test1 << xxx
some text
xxx

或者不用 xxx,用直接 Ctrl+D 结束
$ cat > test1
some text
^D
Cynic222
2014-08-03 08:26:15 +08:00
我没理解错的话,💲前加反斜线转义?
hitsmaxft
2014-08-03 08:38:02 +08:00
有 vim 不用, 这么写, 这是秀操作么...
kchum
2014-08-03 08:43:52 +08:00
@hitsmaxft 不是呀,写个小工具,可以把内容放到另外一个URL,wget下来,只是想写在一个文件里。
kchum
2014-08-03 08:54:10 +08:00
@chunyang 见4楼
@Cynic222 诶,昨晚明明试\$时把\也加进去。看来困了真的要休息了,可以啦,谢谢
gihnius
2014-08-03 10:47:25 +08:00
正确的做法不是使用转义!shell 文档里面有介绍, 加 EOF 引号
cat > output <<'EOF'
...
EOF

cat > output <<"EOF"
...
EOF

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125834

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX