/dev/null ; then echo "Files in th-6ren">
gpt4 book ai didi

bash - &>/dev/null 的 "opposite"

转载 作者:行者123 更新时间:2023-12-04 00:58:16 24 4
gpt4 key购买 nike

我使用以下脚本与文件夹进行比较:

if diff "/home/folder1/" "/home/folder2/" &> /dev/null ; then
echo "Files in the two folders are the same"
else
echo "Files in the two folders are NOT the same"
fi

有没有一种简单的方法来解释“&>/dev/null”实际上做了什么,它是否返回一个 bool 值 true/false?

我的主要问题是:相反的情况是什么?我的意思是,假设我希望“if diff”问题是“两个文件夹的内容不一样吗?”

最佳答案

您的 &> /dev/null将 stdout 和 stderr 输出重定向到 /dev/null ,有效抑制进程的所有输出。程序的退出代码(数字“结果”,通常表示“成功”(0)或“失败”(任何其他数字))不受此影响。

要反转条件(diff),只需插入感叹号,说明 not运算符(operator):

if ! diff "/home/folder1/" "/home/folder2/" &> /dev/null ; then
...
diff工具总是以退出值 0 终止如果(且仅当)它没有发现任何区别。如有差异, 1是退出值;如果有问题(I/O错误或类似的事情), 2是退出值。 if shell 解释 0 的退出值为真,所有其他值为假(请注意,因为这与其他编程语言完全相反!)。

关于bash - &>/dev/null 的 "opposite",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24777332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com