我是 Unix 中的探针。
我想知道这是什么意思?
type ant 1>/dev/null
moduledir=`dirname $0`
谢谢。
该type
命令(在 UNIX 下,不要将其与 MS-DOS/Windows' 混淆CMD.EXE
)将向您展示如果执行命令将如何解释。
使用这种方式,如果找不到/可执行命令type
,将打印一条错误消息(例如ant not found
) 。ant
正如其他人所说,1>/dev/null
(或简单地>/dev/null
)将该命令写入标准输出的消息重定向到“无处”,即它们不会在终端/控制台上打印。写入标准错误流的消息将/仍将发生。看起来,该行是为了检查是否ant
可以执行/找到,但是没有提供(比如)中止脚本的相应检查,它可能像这样(取决于你的 shell,但它看起来像一个 bourne shell反正味道):
type ant > /dev/null
[ $? -ne 0 ] && exit 1
另一个注意事项:使用bash
type 命令永远不会将任何输出写入标准错误流,即即使消息也会... not found
写入标准输出。因此,就目前而言,该命令永远不会输出任何内容,即使在出现错误的情况下也是如此(鉴于此片段无论如何都用作检查,因此显示该消息似乎是明智的)。
最后,
moduledir=`dirname $0`
行将当前正在执行的脚本的目录名存储在变量中moduledir
。您可以稍后引用它$moduledir
,例如:echo "The directory is: $moduledir
.
坦率地说,这两个陈述在你的问题中是孤立的,没有什么意义。虽然语法正确,但它们没有更深层次的含义,因此只能推测它们的用途。您可能需要考虑问另一个关于您实际想要实现的目标的问题,而不仅仅是发布(任意)语法。