python - 启动 shell 脚本不产生输出

标签 python linux bash shell

我在 NVIDIA TX2 系统上使用 Ubuntu 16.04,并且有一个 shell 脚本 launcher.sh 包含以下命令:

#!/bin/sh cd/home/英伟达 sudo python test.py >>/home/nvidia/test_output.txt,

基本上意味着将 test.py 的输出存储在 test_output.txt 中。

test.py有一行:print "Testing startup script!"

我希望这个脚本(以及稍后更复杂的脚本)在系统启动时自动运行。为此,我使用命令 /home/nvidia/launcher.sh 将它添加到 Startup Applications 并重新启动了系统。文件 test_output.txt 确实已创建,但其中没有写入输出。我从终端测试了脚本,它工作正常。

如何让它在启动应用程序中运行?

最佳答案

初始化脚本通常没有初始化完整的环境,例如。 G。 路径。为了执行,您最好提供命令的完整路径。

另一方面,sudo 在这里是不必要的,因为您显然不需要做任何需要 root 权限的事情。如果您需要它,请注意 sudo 以交互方式询问密码,如果您尝试使用它执行的命令在 /中未明确允许,这会暂停脚本的执行etc/sudoers.

假设test.py位于/home/nvidiapython位于/usr/bin , 脚本应该是这样的

#!/bin/sh

cd /home/nvidia
/usr/bin/python test.py >> test_output.txt

如果你想将错误输出添加到输出文件中,这可能对调试有用,请在最后一行添加

/usr/bin/python test.py >> test_output.txt 2&>1

或者一个单独的错误日志

/usr/bin/python test.py >> test_output.txt 2> test_error.log

关于python - 启动 shell 脚本不产生输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48562073/

相关文章:

python - 我可以在 Django QuerySet 中自定义复杂的分组依据吗?

linux - 比较来自不同文件的列并打印不匹配的列

git - 检查 Git 是否以编程方式更改

python - 脚本/子进程按时间顺序输出

python - 列表理解中带有浮点格式的 f 字符串

python - Python 'self' 定义中的名称错误

linux - 构建一个 rpm 文件以安装具有所有依赖项的各种模块

python - 错误: 502 bad gateway in flask app on nginx and uwsgi

arrays - 如何根据 bash 中的定界符拆分字符串?

linux - 如何配置 bash 来处理 CRLF shell 脚本?