[Python]在python中调用shell脚本,并传入参数-02python操作shell实例

首先创建2个shell脚本文件,测试用.

  • test_shell_no_para.sh 运行时,不需要传递参数
  • test_shell_2_para.sh 运行时,需要传递2个参数

   test_shell_no_para.sh 内容如下:

   test_shell_2_para.sh内容如下

注意含有变量的字符串要用 双引号 括起来

  直接在命令行运行 test_shell_2_para.sh 执行结果如下:

[email protected]348-G4:~$ sh test_shell_2_para.sh ‘para1‘ ‘para2‘
hello world para1 para2 

通过python调用shell,实际操作:

  • 通过python 调用test_shell_no_para.sh脚本
In [29]: os.system(‘./test_shell_no_para.sh‘)
hello world
Out[29]: 512
  • python 调用test_shell_2_para.sh脚本,并传入2个参数 arg1和arg2
In [31]: arg1=‘pyarg1‘                                                          

In [32]: arg2=‘pyarg2‘ 

In [35]: os.system(‘./test_shell_2_para.sh ‘+arg1+‘ ‘+arg2)
hello world pyarg1 pyarg2
Out[35]: 0

注意:参数前后要有空格

如果参数前后没有空格会报下面的错:

命令行会将参数也视为脚本名字的一部分

  • 在shell脚本中调用shell脚本,并传入参数(重点掌握)

  先创建1个python脚本,内容如下:

import os
import sys

if len(sys.argv)<3:
    print(‘Please Input Two Arguments‘)
    sys.exit(1)
arg0=sys.argv[1]
arg1=sys.argv[2]

os.system(‘./test_shell_2_para.sh ‘+arg0+‘ ‘+arg1)

  执行python脚本,效果如下:

[email protected]348-G4:~$ python3 pp.py
Please Input Two Arguments
[email protected]-HP-348-G4:~$ python3 pp.py 曹操 刘备
hello world 曹操 刘备 

原文地址:https://www.cnblogs.com/kaerxifa/p/11976025.html

时间: 2024-08-08 00:19:16

[Python]在python中调用shell脚本,并传入参数-02python操作shell实例的相关文章

Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import

shell中调用R语言并传入参数的两种方法

第一种: Rscript myscript.R R脚本的输出 第二种: R CMD BATCH myscript.R # Check the output cat myscript.Rout 调用R脚本的全部控制台log 传入参数: 在脚本中add args<-commandArgs(TRUE) 然后shell中: Rscript myscript.R arg1 arg2 arg3 注意取出来的参数是所有参数连在一起的character

java调用shell脚本且传递参数

在最近的工作中,需要用到Java要调用shell脚本的情况.总结如下: @RequestMapping("/changePermission") public String changePermission(){ String returnCode = ""; try { Process process = Runtime.getRuntime().exec("chmod 755 /tmp/upgrade.sh"); process.waitFo

命令行运行Python脚本时传入参数的三种方式

三种常用的方式如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. python script.py 0,1,2 10python script.py -gpus=0,1,2 --batch-size=10python script.py -gpus=0,1,2 --batch_size=10123这三种格式对应不同的参数解析方式,分别为sys.argv, argparse, tf.app.run, 前两者是python自带的功能,后者是ten

在&lt;a&gt;&lt;/a&gt;标签中调用javascript脚本

有时候,我们点击了<a></a>标签(除了跳转到指定链接外)想要它调用某个方法,及调用javascript脚本,该如何做: 方法1:<a href="javascript:void(0);" onclick="functionname()" >aaaa</a> 方法2:<a href="javascript:functionname('dd')" >ddddd</a> 方法3

在C++代码中调用L脚本语言

L脚本语言同意被其他编程语言调用.如C++,非常easy.仅仅要在宿主语言中载入L脚本引擎的动态库 直接调用这两个函数就能够了 extern "C" int __stdcall ScriptEngineDoString(wchar_t * ScriptString); extern "C" int __stdcall ScriptEngineDoScriptFile(wchar_t * ScriptFileName); C语言调用L脚本引擎的样例: #include

shell脚本交互:expect学习笔记及实例详解

最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. expect是spawn: 后面加上需要执行的shell命令,比如说spawn sudo touch testfile 1.3 expect: 只有spawn执行的命令结果才会被expect捕捉到,因为spawn会启动一个进程,只有这个进程的相关信息才会被捕捉到,主要包括:标准输入的提示信息,Li

shell脚本基础进阶(一)----shell介绍

shell介绍 既然说到bash编程,那就先从程序设计开始吧,先说什么是程序?个人的话解释:程序就是对数据的加工处理过程.那么,程序设计构成就可以写成这个等式:程序=数据结构+指令算法. 数据结构:即非数值计算的程序设计问题中的计算机的操作对象以及它们之间的关系和操作 指令算法:即对特定问题求解步骤的一种描述,是对指令的有序序列 程序根据在编程过程中对数据和指令的侧重点不同,可以将程序分为两种类型: 1.面向过程的编程:以指令为中心,设计算法,数据服务于算法: 2.面向对象的编程:以数据为中心,

shell脚本连接、读写、操作mysql数据库实例

本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为xml或html文件, 并分析了核心语句.本文介绍的方法适用于PostgreSQL ,相对mysql而言,shell 中读写PostgreSQL会更简单些. 1. 连接mysql 数据库 shell中连接数据库的方法很简单,只需要指定用户名,密码,连接的数据库名称,然后通过重定向,输入mysql的语