V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kchum
V2EX  ›  问与答

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

  •  
  •   kchum · 2014-08-03 02:48:00 +08:00 · 6721 次点击
    这是一个创建于 3795 天前的主题,其中的信息可能已经有所发展或是发生改变。
    例如
    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
    放狗搜,没有找到解决方案
    求大神帮看看,非常感谢
    第 1 条附言  ·  2014-08-03 08:56:37 +08:00
    结贴
    感谢2楼提示,我又试了下,\$可以。
    眼困真的要休息先。
    6 条回复    2014-08-03 10:47:25 +08:00
    chunyang
        1
    chunyang  
       2014-08-03 03:40:48 +08:00
    没看懂你想干嘛。

    $ cat > test1 << xxx
    some text
    xxx

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

    cat > output <<"EOF"
    ...
    EOF
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3526 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:44 · PVG 18:44 · LAX 02:44 · JFK 05:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.