在我的/ home / user目录中,显然有一个.profile文件。在这个目录中,我可以运行bash命令,例如$bash run.sh
。但在任何其他目录中,当输入$bash
时,它总是抱怨
bash: .profile: No such file or directory
PS:我需要在非根目录中运行$bash
,因为我实际上有一个python脚本run.py,其中包含此行subprocess.call( ['bash', 'test.sh'], shell=True)
。运行这个python脚本时,bash抱怨没有.profile。
有人知道为什么吗?谢谢你的帮助!
答案 0 :(得分:1)
请尝试此解决方案并让我知道它是否有效 - 因为我无法访问您的脚本和/或文件结构,而且这个问题是我在可用信息中唯一可以看到的问题,我将介绍此问题作为一个可能的答案:
这可能是因为在使用shell=True
参数时拆分输入。根据文档,您必须使用以下命令:
subprocess.call('bash test.sh', shell=True)
因为通过shell执行不需要清理输入,即使这是一个安全隐患。