Whenever I run the following command in the terminal, the stderr and stdout is sent to the output.txt file just like I would expect.
/usr/bin/time -v ls -al &> output.txt
However, whenever I put this command into a shell script, the output is displayed in the terminal and the output of output.txt is empty. Here is the equivalent script:
#!/bin/sh
/usr/bin/time -v ls -al &> output.txt
exit
I run the script using ./script.sh. Why doesn’t this script behave like I would expect? I have tried replacing the command with: { /usr/bin/time -v ls -al ; } &> output.txt, but that doesn’t work either.
Thanks in advance for any help!
>Solution :
You are using sh as interpreter for your script, and the operator &> isn’t supported by it. Surely you are using bash to test your command, and that is why it works outside the script.
I think that this answer to another question could be of some help:
https://askubuntu.com/a/625230