【发布时间】:2019-10-24 00:03:39
【问题描述】:
要检查 Perl 脚本是否以“交互方式”运行(不是管道的一部分),我们可以使用 -t STDOUT 检查,例如在:
% my-script
t STDOUT 为真,而在:
% my-script | grep foo
-t STDOUT 为假。
是否有(简单)方法来检查脚本是否“作为简单命令”运行,即不是多命令逻辑序列的一部分,例如:
% my-script && echo "success"
% my-script || echo "failed"
【问题讨论】:
-
简答:不,没有。
-
如果你知道这个你会怎么做?
-
我想根据是否访问我的 CLI 以不同的方式输出,例如:
image-is-landscape foo.jpgvsimage-is-landscape foo.jpg && mv foo.jpg foo-landscape.jpg。在第一种情况下,除了返回适当的退出代码之外,我还想输出一条消息“图像是风景”。 -
我现在采用
grep的方式使用-q选项让用户抑制输出。