什么是/ bin / true?


69

在Linux系统上,什么是/bin/true?这有什么用途?


/ foo / bar || true(在/ bin / true时有效)在路径中。尽管没有这样标记,但这个问题确实解释了一些在Shell脚本,makefile等中有用的内容。因此,不投票赞成关闭。
蒂姆·波斯特


您可能想看看它们的源代码;因为我很好奇
КонстантинВан

Answers:


76

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

它的目的是在Shell脚本中通常用编程语言使用诸如“ true”之类的文字的位置中使用,但是Shell仅使命令运行。

/bin/false 与之相反,它返回非零(shell中的一个假值)。


27

从手册页:

true - do nothing, successfully

true returns a status 0.

40
SyaZ:您可能也对以下描述感到很有趣false(1):“不做任何事情,不成功”。
camh 2012年

9

请注意,这不仅愚蠢或美观。例如,它有助于退出程序而无需激活最终处理程序,这在执行多线程或分叉程序时可能会造成混乱。像在perl中一样:

#!/usr/bin/env perl

exec "/bin/true";

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

1

我已经看到它曾经使系统操作误认为没有运行命令。如果命令出现故障(例如循环),则可以将其替换为符号链接“ true”,以使主作业运行。如果替换工作不是一个好主意,那不是必须的。


0

简单地说,它的程序返回0。有时我们需要获取此值以使脚本更具可读性。通常在需要使用命令输入true值时使用。


如何添加示例?
codeforester

0

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

while true; do
    something
done
flag=true
...
if $flag; then
    something
done
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.