我是新来的bash脚本和学习通过一些例子。其中之一,我看到的例子是使用if语句来测试是否先前分配的输出文件是有效的,这样的:这是一个bash脚本的if语句吗?
if [ -n "$outputFile" ] && ! 2>/dev/null : >> $outputFile ; then
exit 1
fi
我明白[ -n "$outputFile" ]
做,但条件不休息。有人可以解释什么! 2>/dev/null : >> $outputFile
意味着什么?
我已经搜索了答案,但大多数发现的链接都是I/O重定向的解释,这些解决方案与! : >>
结构有关,但仍然不明确。
你从哪里看到它的?它说它做了什么? – 2014-08-27 20:34:28
可以重写为'if [[$ outputFile]] && [[! -w $ outputFile]];然后退出; fi' – 2014-08-27 20:40:35
@glennjackman:'-w'假定文件已经存在,所以它不完全相同。 – FatalError 2014-08-27 20:41:41