有没有办法检查选项是否对某个程序有效?

时间:2016-01-25 19:23:05

标签: linux bash shell

例如,cat没有选项'-a'

当我尝试运行cat -a时,我收到错误消息和使用行。我可以以某种方式获得真值吗?

或者我必须做以下事情:

MESS=$(cat -a)
ERROR='illegal option -- a
usage: cat [-benstuv] [file ...]'

if [ "$MESS" = "$ERROR" ] ; then
.... 

(虽然这不起作用,它仍会将消息打印到屏幕上而不是将其存储到MESS中)

2 个答案:

答案 0 :(得分:2)

你可以看到某些程序手册,以查看ex。

的可用选项
man cat 

答案 1 :(得分:0)

Unix程序在解析命令行选项时具有很大的灵活性,并且已识别选项的列表不以机器可读的形式公开。不正常的程序甚至可以改变其从运行到运行的已识别选项。充其量,您将不得不使用基于解析手册页和错误输出的启发式方法,但这很容易出错。

然而,一切都不会丢失。 The fish(1) shell有很多神奇之处可以猜测标签完成的可能选项,你可以检查它的代码,看看它是如何完成的。