/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 是啥?的主要内容,如果未能解决你的问题,请参考以下文章
map.setMyLocationEnabled(true) 的真正作用是啥