我是一名新手,正在通过一些示例来学习bash脚本编写。其中一个示例是使用if语句来测试先前分配的输出文件是否有效,如下所示:
if [ -n "$outputFile" ] && ! 2>/dev/null : >> $outputFile ; then
exit 1
fi
我理解
[ -n "$outputFile" ]
的含义,但不理解条件语句的其他部分。有人可以解释一下 ! 2>/dev/null : >> $outputFile
是什么意思/做什么吗?我已经谷歌搜索了答案,但大多数链接都是关于I/O重定向的解释,这些解释肯定是相关的,但对于
! : >>
结构仍然不清楚。
if [[ $outputFile ]] && [[ ! -w $outputFile ]]; then exit; fi
。 - glenn jackman-w
假设文件已经存在,所以它并不完全相同。 - FatalError