linuxbashherestring

What is the advantage of using bash -c over using a here string


Is there any real benefit to using bash -c 'some command' over using bash <<< 'some command'

They seem to achieve the same effect.


Solution

  • Examples:

    # Executes the `ls` command then processes stdin input via `cat`
    echo hi | bash -c 'ls -d /; cat -n'
    /
         1  hi
    
    # The here-string input takes precedence and pipeline input is ignored.
    # The `ls` command executes as expected, but `cat` has nothing to read, 
    # since all stdin input (from the here-string) has already been consumed.
    echo hi | bash <<<'ls -d /; cat -n'
    /