[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 执行结果如下:
wangju@wangju-HP--G4:~$ sh test_shell_2_para.sh 'para1' 'para2'
hello world para1 para2
脚本说明:
shell脚本参数化采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况。
shell脚本参数化的方式参照:shell中脚本参数传递的两种方式
- 通过python 调用test_shell_no_para.sh脚本
In []: os.system('./test_shell_no_para.sh')
hello world
Out[]:
- python 调用test_shell_2_para.sh脚本,并传入2个参数 arg1和arg2
In []: arg1='pyarg1'
In []: arg2='pyarg2'
In []: os.system('./test_shell_2_para.sh '+arg1+' '+arg2)
hello world pyarg1 pyarg2
Out[]:
注意:参数前后要有空格
如果参数前后没有空格会报下面的错:
命令行会将参数也视为脚本名字的一部分

- 在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脚本,效果如下:
wangju@wangju-HP--G4:~$ python3 pp.py
Please Input Two Arguments
wangju@wangju-HP--G4:~$ python3 pp.py 曹操 刘备
hello world 曹操 刘备
[Python]在python中调用shell脚本,并传入参数-02python操作shell实例的更多相关文章
- shell中调用R语言并传入参数的两种步骤
shell中调用R语言并传入参数的两种方法 第一种: Rscript myscript.R R脚本的输出 第二种: R CMD BATCH myscript.R # Check the output ...
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...
- shell脚本获取传入参数的个数
ts.sh #!/bin/bash echo $# 输出 [root@redhat6 ~]# ./ts.sh para1 [root@redhat6 ~]# ./ts.sh para1 para2 [ ...
- 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)
如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...
- python脚本中调用其他脚本
如果只关注脚本中调用他脚本直接看代码30行 PS:该脚本功能有:自动清理目录,创建目录,自动运行脚本,以此提升工作效率 import numpy as np import os from shutil ...
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- 命令行运行Python脚本时传入参数的三种方式
原文链接:命令行运行Python脚本时传入参数的三种方式(原文的几处错误在此已纠正) 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. pyth ...
- iOS:在OC中调用JS脚本
示例一:在webView中调用js脚本进行搜索 1.首先导入JavaScriptCore.framework这个框架 2.创建webView.设置代理.请求手机端百度 #import "Vi ...
- shell脚本处理长参数的模板
shell脚本处理长参数的模板 一个shell模板,处理命令行参数,支持长短参数: #!/bin/bash # # FILE: kvm-clone-v2.sh # # DESCRIPTION: Clo ...
随机推荐
- [APIO2010] 算法竞赛竞赛经典 巡逻
原题链接 题目描述 在一个地区有 n 个村庄,编号为1,2,-,n. 有 n-1 条道路连接着这些村庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其他任一个村庄. 每条道路的长度 ...
- 牛客小白月赛12 I 华华和月月逛公园 (tarjian 求桥)
链接:https://ac.nowcoder.com/acm/contest/392/I 来源:牛客网 华华和月月逛公园 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K, ...
- zencart分类页每页显示产品数量自定义选择的方法
zencart默认分类页每页显示产品数量是固定的,如何让顾客可以选择每页显示的产品的数量呢?效果图 方式一:全部展示 方式二:下拉菜单 修改方法 1.导入sql INSERT INTO configu ...
- Appium简介以及环境安装
官网地址 Appium 是一个自动化测试开源工具,支持多平台上的原生应用,web应用和混合应用,是由appium server和appium Client两部分组成通过json wire protoc ...
- CSS基础学习-12.CSS position
绝对定位 position:absolute,元素脱离文档流,然后使用left.right.top.bottom属性相对于其最接近的一个具有定位属性的祖先元素进行绝对定位.如果不存在这样的祖先元素,则 ...
- CSS基础学习-6.CSS属性_列表、表格
- veeValidate实战
说在前面 vee-validate 版本2.0.4的学习github地址我的项目地址第一次认真的在git上写一个demo教程,喜欢的可以star一下~^o^~ (^-^) (^o^) 后续会有一个完整 ...
- nodejs (下)(设置响应参数)
响应: 可以自定义设置状态码(状态码范围内的):res.statusCode = 404; 修改响应头信息: res.setHeader('content-type','text/html ...
- ListView如何添加数据如何不闪烁
public class DoubleBufferListView : ListView { public DoubleBufferListView() ...
- 一个关于STL list使用 小示例
#include <list> #include <string> using namespace std; typedef struct DiskInfo_st { int ...