[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 ...
随机推荐
- Delphi RS-232C标准
- 5.Nginx的session一致性(共享)问题配置方案1
1:Session共享 为什么要实现共享,如果你的网站是存放在一个机器上,那么会话数据就在这台机器,但是如果你使用了负载均衡把请求分发到不同的机器呢?这个时候会话 id在客户端是没有问题的,但是如果用 ...
- ubuntu下python3.6.5import tensorflow显示非法指令(核心已转储)
1.版本 ubuntu版本为14.04 python为3.6.5 tensorflow为pip3安装的1.8.0版本 2.解决 删除原先的tensorflow:sudo pip3 uninstall ...
- 6.MNIST数据集分类简单版本
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data # 载入数据集 mnist = i ...
- The Tower HDU - 6559 (解析几何)
The Tower HDU - 6559 The Tower shows a tall tower perched on the top of a rocky mountain. Lightning ...
- 【CF335 E】Counting Skyscrapers
题意 有一排高楼,每一栋高楼有一个正整数高度,高度为 \(i\) 的概率为 \(2^{-i}\).一栋楼的每层从下往上依次编号为 \(0,1,2,\cdots,i-1\). 为了出题,大楼之间安装了溜 ...
- MySQL 8下忘密码后重置密码
解决方案:1):设置mysql为无密码启动 (修改MySQL的登录设置:vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-table) 2):重新启动mys ...
- Solr初步
Solr是一个独立的,基于Lucene的全文搜索服务器企业级搜索应用服务器,它对外提供API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引(solr生成倒排索引,数 ...
- docker及k8s安装consul
一.docker部署consul集群 参考文献:https://www.cnblogs.com/lonelyxmas/p/10880717.html https://blog.csdn.net/qq_ ...
- 解决power designer 不能自动生成注释 commont 的解决办法只需要3步:
解决power designer 不能自动生成注释的解决办法只需要3步: 一.快捷键 Ctrl+Shift+X 打开脚本编辑器:(快捷键不能执行的话可以从这个路径执行:Tools --> Exc ...