Joe 9 tháng trước cách đây
mục cha
commit
265184b2d1
1 tập tin đã thay đổi với 19 bổ sung8 xóa
  1. 19 8
      qiaojialiang/demo01.py

+ 19 - 8
qiaojialiang/demo01.py

@@ -15,16 +15,27 @@ n2 = 5
 script1_path = "./script1.sh"
 script2_path = "./script2.sh"
 
+# 打开日志文件准备写入
 with open(log_file, 'w') as f:
-    # 调用script1.sh
-    result = subprocess.run([script1_path, str(n1), str(n2)], shell=True, stdout=f, stderr=subprocess.STDOUT)
+    # 调用script1.sh,不使用shell=True
+    result1 = subprocess.run([script1_path, str(n1), str(n2)], stdout=subprocess.PIPE, stderr=subprocess.PIPE,
+                             text=True)
 
-    # 检查返回码
-    if result.returncode == 0:
+    # 检查script1.sh的返回码,并写入输出到日志文件
+    if result1.returncode == 0:
         print("script1.sh 执行成功")
-        # 调用script2.sh
-        result2 = subprocess.run([script2_path], shell=True, stdout=f, stderr=subprocess.STDOUT)
-        print("script2.sh 执行成功")
+        f.write(f"--- script1.sh 输出 ---\n{result1.stdout}\n")
+
+        # 调用script2.sh,同样不使用shell=True
+        result2 = subprocess.run([script2_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
+
+        # 检查script2.sh的返回码,并写入输出到日志文件
+        if result2.returncode == 0:
+            print("script2.sh 执行成功")
+            f.write(f"--- script2.sh 输出 ---\n{result2.stdout}\n")
+        else:
+            print("script2.sh 执行失败")
+            f.write(f"--- script2.sh 错误输出 ---\n{result2.stderr}\n")
     else:
         print("script1.sh 执行失败")
-        print(f"错误输出: {result.stderr}")
+        f.write(f"--- script1.sh 错误输出 ---\n{result1.stderr}\n")