What is /bin/true?

后端 未结 6 859
谎友^
谎友^ 2020-12-24 00:29

On a Linux system, what is /bin/true? What is it used for?

相关标签:
6条回答
  • 2020-12-24 00:41

    /bin/true is a command that returns 0 (a truth value in the shell).

    Its purpose is to use in places in a shell script where you would normally use a literal such as "true" in a programming language, but where the shell will only take a command to run.

    /bin/false is the opposite that returns non-zero (a false value in the shell).

    0 讨论(0)
  • 2020-12-24 00:49

    In the UNIX shells, it's used for the same purposes as boolean constants true and false in any other language.

    while true; do
        something
    done
    
    flag=true
    ...
    if $flag; then
        something
    done
    
    0 讨论(0)
  • 2020-12-24 00:50

    Note, it's not just silly or visually nice. It helps for example to exit a program without activating the end handlers which might mess up when doing multi threading or forked programs. Like in perl:

    #!/usr/bin/env perl
    
    exec "/bin/true";
    
    END {
      print "This wont get printed .. would have if I just 'exit' or 'die'\n";
    }
    
    0 讨论(0)
  • 2020-12-24 00:58

    I've seen it used to fool a system operation into thinking a command has run when it hasn't. If a command is faulty eg looping, you can replace it with a symlink to 'true' to get the master job to run. Only a good idea if the job replaced isn't essential.

    0 讨论(0)
  • 2020-12-24 01:00

    Simply saying its a program returning 0. Sometimes we need to get this value to let the script more readable. It is usually used when you need to use a command for a true value.

    0 讨论(0)
  • 2020-12-24 01:03

    From the man page:

    true - do nothing, successfully
    
    true returns a status 0.
    
    0 讨论(0)
提交回复
热议问题