猛砸打印帮助信息时使用的猫被发现没有参数

问题描述 投票:2回答:2

如果没有参数我应该打印“帮助”消息,使用cat标准错误设备什么IM也应该做的是。到目前为止,我可以理解并得到它使用echo工作,但我的任务就是只有做到这一点使用的猫。当我尝试线cat 2> (help message)它关系到一个新的生产线在那里我可以输入任何东西,并会导致脚本并不唯一躲过ctrl + z正常工作。这怎么可能用猫代替回声做了什么?与标准错误消息仍然被打印出来,以及如果那是可能仅使用猫?

帮助信息

Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----.

#!/bin/bash
# concat script
if [[ $@ ]]
then
        for i in "$@"
        do
         cat "$i" && echo  "-----"
        done
exit 0
else
 cat 2> "Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----."
exit 1
fi
linux bash cat stderr
2个回答
4
投票

cat从文件用于输出的数据。从字符串输出数据,使用echo

2>是标准输出重定向到一个文件。到stdout指向标准错误,使用>&2

在所有:

echo >&2 "Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----."

如果你真的想避免使用正确的工具的工作,你可以在here文件的条款改写(创建一个猫可以读取临时文件):

cat << EOF >&2
Usage: concat FILE ...
Description: concatenates FILE(s) to standard output separating them with divider -----.
EOF

2
投票

如果您想打印一个消息stderr,不catecho,请尝试:

cat <<< "Usage: ..." >&2
© www.soinside.com 2019 - 2024. All rights reserved.