问题:自定义的shell脚本函数如何传递参数? function fun1() { echo $1 hello word; return 256; } function fun2() { echo $? } function fun3() { echo $1 my parm; } fun1 $1 #把命令行传入的第一个参数传递给fun1函数; fun2 #顺序执行,fun2函数把fun1的返回值输出; fun3 $2 #把命令行第二个参数作为fun3的第一个参数; #============================== 注释: (1)shell脚本自定义函数的返回值范围[0-255]; (2...
by 寻蝉林子 - Shell - 2016-11-07 14:12:20 阅读(2574) 回复(5)
在运行shell脚本的时候,后面会跟上参数,但是参数的数量不确定。 例如:bash test.sh 3 10.10.10.31 10.10.10.32 10.10.10.33 第一个参数表示后面有3个ip参数,参数的数目是根据需求动态变化的。 在tesh.sh 内,有一个函数需要利用到所有的输入参数,。 只会传递固定数量参数的那种,这种动态的不会。 求大牛解答。 在线等~~~
array=(1 "2 2" 3) 将它作为参数传递给函数,例如: func ${array} #func是一个shell函数 在func函数内部,传递进来的数组是四个元素1 2 2 3,而不是三个元素1 "2 2" 3,传递参数是 将"2 2”替换了两个元素。怎样解决这个问题呢?
[test@erpdataserver ~]$ cat kkg.sh #!/bin/bash funion (){ echo "1" echo $1 } funion [test@erpdataserver ~]$ ./kkg.sh test 1 [test@erpdataserver ~]$ test值 echo不出来。 以前碰到过,现在不记得了。
假设file.txt文件内容: 10,15,20 1,2,3 想用如下的方式分别计算每列的和,函数的参数即是第几列 func1 { #一个参数,假设输入的是2,在下面awk的{i=i+$?}就为{i=i+$2} n=`awk -F, 'BEGIN{i=0} {i=i+$?} END{print i}' file.txt` echo $n } #调用函数 func1 1 #这里计算第1列的结果为11 func1 2 #这里计算第2列的结果为17 func1 3 #这里计算第3列的结果为23 exit 0 不知上面红色处该怎么写,才能够达到目的?多谢
shell和函数之间参数传递的问题 用到如下情况: 1,通过系统调用,调用一个shell脚本 此shell的用处是返回一个进程的PID ps -axw | grep -w 'command' | grep -v ' ps -axw ' | grep -v ' grep ' | awk ' { printf $1; printf "%c",32 } ' 2, 让函数获得这个返回值 请问应该怎么做!! 按说应该有方法调用某个程序的时候自动返回PID的吧??? 希望有人解答,谢谢