参数传递:shell脚本调用一个带参数的python函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参数传递:shell脚本调用一个带参数的python函数相关的知识,希望对你有一定的参考价值。
为了批处理文件,需要写一个shell脚本重复调用另一个python函数,而python函数是文件转换函数,调用格式为cif filename
而且在cif函数的运行过程中,需要从键盘输入三个参数a b c,以空格间开。
那么在我写的shell函数里,怎么向cif函数传递它需要的三个参数呢?
<< EOF
a
b
c
EOF本回答被提问者采纳 参考技术B 发达巅峰发给的
shell 自定义带参数函数
哪位大侠知道怎么在Shell中写个带参数的函数,类似func(a,b)这样的函数,怎么调用?
#!/bin/bashfunc()
expr $1 + $2
func 2 3
#说明,脚本来来的运行参数$#、$*、$1、$2、$3……在进行函数调用时会自动替换成函数参数($0不替换,仍然是原运行脚本的文件名),函数调用结束这些值又会恢复原来的值,不影响脚本原来的运行。
#调用时把参数直接附在函数名后面(不同参数以空格隔开,如果参数是字符串,用双引号引起来,否则字符串中的空格会把一个参数分成多个),在函数中直接用$1,$2等获得参数的值
#也可以通过设置变量的值当作函数参数,函数中直接使用变量就行
#函数返回值自己搜索吧
附脚本运行参数:三、位置变量参数
在向脚本传递参数时,可以使用此位置变量来获取参数。
他们分别是:
$0:脚本名字。此变量包含地址,可以使用basename $0获得脚本名称。
$1:第一个参数
$2,$3,$4,$5,...一次类推。
四、特定变量参数
一些脚本运行的相关控制信息
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的ID号
$! 后台运行的最后一个进程的ID号
$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示shell使用的当前选项。
$? 显示最后命令的推出状况。0表示没有错误。追问
非常感谢,特定参数这样的我明白,我就是不知道能不能像c语言那样写个带参数的函数,可以在别的地方赋值、调用?
追答跨脚本文件调用吗?这个不真不知道,如果跨文件调用就直接把一个函数写成一个可执行脚本,用exit 0这样的退出码作为返回值(只能用整数),传递的参数就是脚本的运行参数,用$?获到返回值。同一个文件中调用就是上面说的方法,直接函数后面跟参数就行了,用全局变量保存返回值吧,这样也方便些
参考技术A 想跨脚本来调用函数就要先引入有那个函数的文件source $PWD/function0.sh
source后面跟的是函数文件function0.sh的路径,如果调用函数的文件和function0.sh在同一级目录下就可以这么引入函数文件
以上是关于参数传递:shell脚本调用一个带参数的python函数的主要内容,如果未能解决你的问题,请参考以下文章