抑制在bash脚本中使用带有EOF或EOD的cat命令时可能发生的错误消息

时间:2016-11-10 17:24:56

标签: bash

我的目标是禁止在catEOF使用EOD时可能出现的所有错误消息。

当我运行bash脚本时,我收到错误,因为我故意在文件名的末尾添加了/符号。

ERROR

my-hello.sh: line 5: hello.txt/: Is a directory
BAD

SCRIPT

#!/bin/bash

function create()
{
    cat << EOF > hello.txt/
    Hello
EOF
}

createHook
if [ $? -eq 0 ]; then
   printf "GOOD"
else
   printf "BAD"
fi

如何禁止在终端上打印错误信息?

我尝试了2>/dev/null,但EOF因为已知的白色间距原因而不喜欢它。

注意:文件的内容实际上更大,但我只是简单地将Hello放入其中。如果能解决我的问题,我会对变化持开放态度。

1 个答案:

答案 0 :(得分:1)

您需要使用重定向到/dev/null,如下所示:

function create()
{

    cat 2>/dev/null << EOF > hello.txt/
    Hello
EOF
}

您还可以重定向create()功能中的所有错误:

function create()
{
    cat << EOF > hello.txt/
    Hello
EOF
}

createHook 2>/dev/null