【发布时间】:2021-12-08 07:41:37
【问题描述】:
我需要从 python 文件触发一个 shell 脚本。该 shell 脚本需要执行一些命令并将数据存储在另一个文件中。
问题: 我可以从 python 触发 shell 脚本,但是在 shell 脚本中执行的命令给出了空响应并将 "Cg==" 存储在相应的文件中。
Shell 脚本:randscript.sh
生成随机值并将其存储到新文件中。
echo Pass = $(echo $RANDOM | base64 | head -c 20)>>newfile
Python:randfile.py
执行python文件触发shell脚本。
import os
import subprocess
def rand_func():
try:
path = '/home/ubuntu/execution'
os.chdir(path)
script_exec = subprocess.call(['sh','./randscript.sh'])
print(script_exec)
return True
except Exception as err:
print("Exception")
return False
func_exec = rand_func()
注意:当手动执行命令时,它会返回预期值(给出随机值)。但是通过 python 脚本,它返回“Cg==”(这是一个换行符)。 谁能帮我理解这一点?
【问题讨论】:
-
尝试在你的shell脚本的第一行添加
source ~/.bashrc。