【发布时间】:2020-01-18 15:25:53
【问题描述】:
对于shell脚本中的这个问题,我需要接受未知数量的文本文件并将它们连接起来。但是我需要在每个文件的内容之后放置一个分隔符,例如(-----)。脚本还需要有一个退出代码,如果它成功,那么它会打印出正确的输出。但是如果它失败了,它需要打印出这个帮助信息,“Usage...”(它很长,帮助信息本身并不那么重要。)
我已经想出了如何接受多个文本文件来连接它们,但问题真的是分隔符。
我还想出了如何使用 cat 显示帮助消息,但问题是我不知道我需要为 if 和 else 语句设置什么条件,因为条件本身没有按预期工作。 例如,如果它可以找到 txt 文件并打印输出,它会按预期工作,但是如果没有 txt 文件,它就不会打印帮助消息。
我很确定它必须是某种循环语句才能使分隔符起作用,但问题是我不知道该怎么做。甚至不确定条件。
# Don't know what condition to put for the if here
if [ $? -eq 0 ]
then
# Don't know what condition to put for the for loop here
for j in "$?"
do
cat *.txt
echo "-----"
done
exit 0
else
cat <<< "Usage..." >&2
exit 1
fi
假设我们有 2 个文本文件。 one.txt 有:
Hello
两个.txt 有:
Happy
如果代码按预期运行,输出应该是:
Hello
-----
Happy
-----
【问题讨论】:
-
您可以在while循环中同时读取两个文件,然后一个接一个地打印。