在linux上的stderr上打印错误消息

时间:2015-09-16 00:17:18

标签: linux shell

所以我曾多次读过关于stdout,stdin和stderr的文章。这听起来像一个非常简单的概念,但我不知道为什么我还无法掌握它。

好吧,我正在编写一个家庭作业的脚本。部分原因是至少需要两个参数。如果它少于两个参数,它应该在stderr上打印一个错误,否则它应该将所有文件的内容打印到stdout。 (现在假设所有文件都是文本文件,我不想处理它)

所以在阅读Linux Pocket指南后,我知道如何开始

#!/bin/bash

if[$# -lt 2]
then
    echo $0 error: you must supply two arguments"
else
//stuff
fi

我的第一个问题是,代码行:

echo $0 error: you must supply two arguments"

是否满足“应该在stderr上打印错误”的要求?

此外,作业要求我将参数命名为a1,a2,a3 ......等等。我如何命名这个论点?

最后,如何将所有内容放在一起,换句话说,如何连接文件并打印它们?

1 个答案:

答案 0 :(得分:1)

没有。

$('#bookingTable > tbody > tr').each(function () { var type= $(this).find('select:first').attr('name'); var qty = $(this).find('option:selected').val(); var amount = (qty * price[type]) sum += amount; $(this).find('.amount').text('$' + amount.toFixed(2)); });

表示打印文件名。您没有将输出定向到任何地方。

示例:

echo $0

#!/bin/bash echo "name stdout: $0" echo "name stderr: $0" >&2 是指向stdout的指针。它可以不提供,它是默认值 &1是指向stderr的指针

为了证明这一点,运行此脚本并将脚本stderr输出重定向到/ dev / null。 如果你看不到输出,那么你知道回声是在stderr。

&2