/bin/true 是啥?

Posted

技术标签:

【中文标题】/bin/true 是啥?【英文标题】:What is /bin/true?/bin/true 是什么? 【发布时间】:2011-01-11 15:16:13 【问题描述】:

在 Linux 系统上,/bin/true 是什么?它是干什么用的?

【问题讨论】:

/foo/bar || true(如果 /bin/true 有效)在路径中。虽然没有这样标记,但这个问题确实解释了一些在 shell 脚本、makefile 等中有用的东西。因此不会投票关闭。 forums.thedailywtf.com/forums/t/3779.aspx 你可能想看看the source code of them;因为我很好奇。 【参考方案1】:

/bin/true 是一个返回 0(shell 中的真值)的命令。

它的目的是在 shell 脚本中的一些地方使用,你通常会在编程语言中使用诸如“true”之类的文字,但 shell 只需要一个命令来运行。

/bin/false 是相反的,返回非零(shell 中的假值)。

【讨论】:

【参考方案2】:

来自手册页:

true - do nothing, successfully

true returns a status 0.

【讨论】:

SyaZ:你也可能被false(1)的描述逗乐了:“什么都不做,不成功”。【参考方案3】:

请注意,这不仅仅是愚蠢或视觉上的美好。例如,它有助于在不激活结束处理程序的情况下退出程序,这在执行多线程或分叉程序时可能会搞砸。就像在 perl 中一样:

#!/usr/bin/env perl

exec "/bin/true";

END 
  print "This wont get printed .. would have if I just 'exit' or 'die'\n";

【讨论】:

【参考方案4】:

我曾经见过它用来欺骗系统操作,让其认为命令已经运行,而实际上它没有运行。如果命令有错误,例如循环,您可以将其替换为“true”的符号链接以使主作业运行。如果更换的工作不是必需的,这只是一个好主意。

【讨论】:

【参考方案5】:

简单地说它是一个返回 0 的程序。有时我们需要获取这个值来让脚本更具可读性。当您需要对true 值使用命令时,通常会使用它。

【讨论】:

加个例子怎么样?【参考方案6】:

在 UNIX shell 中,它与任何其他语言中的布尔常量 true 和 false 的用途相同。

while true; do
    something
done
flag=true
...
if $flag; then
    something
done

【讨论】:

以上是关于/bin/true 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Linux下Java调试方法

linux禁止IPv6

在 JSON 中格式化“true”的正确方法是啥?

map.setMyLocationEnabled(true) 的真正作用是啥

bitbake: d.getVar("X", True) True 是啥意思?

java 里面true & true 或者true & false是啥意思?