Shell 脚本没有将输出发送到文件
Shell script not sending output to file
每当我 运行 在终端中执行以下命令时,stderr
和 stdout
就会像我期望的那样发送到 output.txt
文件。
/usr/bin/time -v ls -al &> output.txt
但是,每当我将此命令放入 shell 脚本时,输出显示在终端中,而 output.txt
的输出为空。这是等效的脚本:
#!/bin/sh
/usr/bin/time -v ls -al &> output.txt
exit
我运行脚本使用./script.sh
。为什么这个脚本的行为不像我期望的那样?我已尝试将命令替换为:{ /usr/bin/time -v ls -al ; } &> output.txt
,但这也不起作用。
在此先感谢您的帮助!
您正在使用 sh 作为脚本的解释器,它不支持运算符 &>。当然,您正在使用 bash 来测试您的命令,这就是它在脚本之外工作的原因。
我认为这个对另一个问题的回答可能会有一些帮助:
https://askubuntu.com/a/625230
每当我 运行 在终端中执行以下命令时,stderr
和 stdout
就会像我期望的那样发送到 output.txt
文件。
/usr/bin/time -v ls -al &> output.txt
但是,每当我将此命令放入 shell 脚本时,输出显示在终端中,而 output.txt
的输出为空。这是等效的脚本:
#!/bin/sh
/usr/bin/time -v ls -al &> output.txt
exit
我运行脚本使用./script.sh
。为什么这个脚本的行为不像我期望的那样?我已尝试将命令替换为:{ /usr/bin/time -v ls -al ; } &> output.txt
,但这也不起作用。
在此先感谢您的帮助!
您正在使用 sh 作为脚本的解释器,它不支持运算符 &>。当然,您正在使用 bash 来测试您的命令,这就是它在脚本之外工作的原因。
我认为这个对另一个问题的回答可能会有一些帮助: https://askubuntu.com/a/625230