gpt4 book ai didi

linux - Bash 在使用 cat 找不到参数时打印帮助消息

转载 作者:太空狗 更新时间:2023-10-29 11:30:58 27 4
gpt4 key购买 nike

我还应该做的是,如果没有参数,我应该使用 cat 向标准错误设备打印“帮助”消息。到目前为止,我可以理解并使用 echo 让它工作,但我的任务是只使用 cat 来做到这一点。当我尝试行 cat 2> (help message) 时,它转到一个新行,我可以在其中键入任何内容并导致脚本根本无法正常工作,唯一的转义是 ctrl + z 。如何使用 cat 而不是 echo 来完成此操作?如果只使用 cat 可能的话,stderr 消息仍然被打印出来?

帮助信息

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

最佳答案

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

2> 用于将标准输出重定向到文件。要将 stdout 指向 stderr,请使用 >&2

总的来说:

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

如果你真的想避免使用正确的工具来完成工作,你可以根据这里的文档重写它(创建一个 cat 可以读取的临时文件):

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

关于linux - Bash 在使用 cat 找不到参数时打印帮助消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54601812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com