Linux bash脚本不会将标准输出重定向到文件
我是bash初学者。 我试图将bash scipt的输出重定向到一个文件中。除了一行的输出外,所有内容都重定向到该文件。 此行正在创建一个文件,但没有写入任何内容Linux bash脚本不会将标准输出重定向到文件,linux,bash,pipe,Linux,Bash,Pipe,我是bash初学者。 我试图将bash scipt的输出重定向到一个文件中。除了一行的输出外,所有内容都重定向到该文件。 此行正在创建一个文件,但没有写入任何内容 ( cmdpid=$BASHPID; (sleep 3; sudo kill $cmdpid) & exec sudo hcitool lescan ) > file 这也不起作用: ( cmdpid=$BASHPID; (sleep 3; sudo kill $cmdpid) & exec sudo hcit
( cmdpid=$BASHPID; (sleep 3; sudo kill $cmdpid) & exec sudo hcitool lescan ) > file
这也不起作用:
( cmdpid=$BASHPID; (sleep 3; sudo kill $cmdpid) & exec sudo hcitool lescan > file )
当我执行bash脚本时,上面一行的输出将显示出来,但当我将它重定向到一个文件时,它不会显示出来。
请帮助我。重定向标准输出时,请尝试使用
1>文件
,或者如果您想将输出附加到文件1>文件的末尾
重定向标准输出时,请尝试使用1>文件
或者如果您想将输出附加到文件1>文件的末尾
,也许您也应该这样做重定向stderr?使用>文件2>&1
我已经测试过了,文件是空的。如果我启动脚本时没有管道输出,我会得到类似“LE Scan…”的结果。如果我通过管道将stdout、stderr传输到文件,它将保持为空。为什么要使用“exec”?我不能确定它是否与您的问题有关,但我认为这不是必需的,我建议您删除它以查看您的脚本是否有不同的行为。此外,如果您需要以root身份运行脚本,则在调用脚本时使用sudo
脚本可能更简单,您是否可以提供在没有>文件的情况下获得的输出
也许您还应该重定向stderr?使用>文件2>&1
我已经测试过了,文件是空的。如果我启动脚本时没有管道输出,我会得到类似“LE Scan…”的结果。如果我通过管道将stdout、stderr传输到文件,它将保持为空。为什么要使用“exec”?我不能确定它是否与您的问题有关,但我认为这不是必需的,我建议您删除它以查看您的脚本是否有不同的行为。此外,如果您需要以root身份运行脚本,则在调用脚本时使用sudo
脚本可能更简单,而不是每个单独的命令。您是否可以提供在没有>文件的情况下获得的输出