生成标准错误和输出的命令

生成标准错误和输出的命令

我想对我的 bash 脚本进行一些故障排除。是否有一个简短的命令可以生成这两个命令,stdout以便stderr我可以使用2>&1它?抱歉,如果这看起来微不足道,但我现在想不出一个。

答案1

一个简单的方法是使用ls列出实际和虚构的文件:

ls . *.blah

这假设有工作目录中的可见文件,并且您有任何以1结尾的文件.blah


1. ...如果您这样做,我们不会评判您。

答案2

只需编写一个发送到stdoutstderr...的子shell

(echo STDOUT && echo STDERR >&2) 

为了证明它有效:

(echo STDOUT && echo STDERR >&2) > STDOUT.txt 2> STDERR.txt

这将分别创建包含单词STDOUT.txtand的文件and 。STDERR.txtSTDOUTSTDERR

答案3

ls / /x
df / /x
wc / /etc/passwd
od / /dev/null

保证标准输出写入标准错误:

(w;/) # Bourne/csh like shells only.
sh -c 'w;/'
'time' w

答案4

您可以编写一个函数供以后使用:

gen_stdout_stderr() {                                                           
    printf "%s\n" "STDERR" >&2                                                  
    printf "%s\n" "STDOUT"                                                      
}

然后:

$ gen_stdout_stderr 
STDERR
STDOUT

相关内容