linux脚本函数
㈠ 在linux 用shell脚本调用c语言的执行文件,用到什么函数,求大神帮分析一下
c调用shell为system(cmd)
shell调用c执行文件和调用普通的命令一样,如 ls cd pwd等命令都是c写的执行文件
㈡ 完成函数与脚本的编写 Linux编程
#!制/bin/bashsum(){ total=0 for num in `seq $1 $2` do let total+=num done echo $total} read -p "Input number1: " num1read -p "Input number2: " num2if [ $num1 -ge $num2 ]; then echo "Wrong number!" exit 1fisum $num1 $num2exit 0
㈢ 如何写一个shell脚本在Linux下来运行main函数
这要看你的main函数是什么语言的了,如果是shell里面的函数,可以这么写:
main() {
echo "1234567"
)
echo "start"
main
echo "end"
exit 0
如果是其他语言,那你可以直接调用编译后的可执行程序:
echo "start"
main
echo "end"
如果有入参,可以在main后面直接写,用空格分割
那就好说了,首先你得在linux安装JDK,然后把java_HOME、CLASSPATH和PATH这几个环境变量设置好,然后把上面的main换成
java 程序,这个程序需要是javac后的
㈣ Linux system 函数
最近工作中在 Linux 下,某些指定的程序需要调用指定的 shell 脚本完成指定工作,以前也曾经做过类似的功能,调用 system 函数执行指定的脚本,以前并不关心 shell 脚本是否执行成功了,现在的功能需要根据 shell 脚本执行成功与否,于是查询了下 system 函数的说明,有此文以做笔记之用。
功能:调用/bin/sh -c 执行指定的脚本 command
常规使用方法:
关于返回值:
答案是 都错
man手册
看着挺晕的,但是如果对于 system 的执行过程了解的话,就很容易理解了,函数执行分为以下几个阶段。
阶段1:创建子进程等准备工作。如果失败,返回-1
阶段2:调用 /bin/sh 拉起脚本,如果拉起失败或者shell未正常执行,原因值被写入ret中
阶段3:如果 shell 脚本执行成功, shell 脚本的返回值写入ret中
从上面可知,不管 shell 脚本返回什么值,只要调用了/bin/sh,并且执行过程没有被信号中断,都算正常结束。因为脚本是在子进程中执行的,所以要想获取脚本是否执行成功的方法只能用系统提供的两个宏。
由于我们一般在 shell 中会通过返回值判断脚本是否执行成功,成功返回0,成功返回整数。所以判断一个脚本是否执行成功,应该满足三个条件:
注意:当 shell 脚本不存在时、没有执行条件等,前两个条件也会成立,此时WEXITSTATUS(ret)为127,所以shell脚本中不能将127作为返回值,shell脚本中的异常返回值最好从1开始递增,成功返回0。
system 用起来,看则简单,实则不那么简单,有很多隐藏的坑,需要自己深入理解原理,才能更好地使用,也可以用其他实现方式完成相同的功能。
最后对自己说,多写,多思,多总结
㈤ 每天三分钟搞定linux shell脚本26 函数返回值
函数可以产生返回值,有3个方法。
1)默认情况下是 最后一条语句对应的退出状态码
2) return 一个整数值
3)使用 echo语句 指定输出
针对 方法1 建立如下脚本:
运行后输出结果为:
针对 方法2 建立脚本:
运行后结果为:
针对 方法3 建立脚本
运行后输出结果为:
方法3使用echo语句来返回结果,而且 并没有把这个输出到stdout 中。
函数返回数组与参数传递数组一样,使用echo语句。举例如下:
运行后输出结果为:
㈥ 在linux中怎么运行脚本函数
1、同一脚本文件中的函数:
#!/bin/sh
function func1()
{
echo $1
}
func1 "Hello world!"
2、其它脚本文件中的函数:
func.sh文件内容如下(其中定义了函数func1,需要1个参数):
#!/bin/sh
function func1()
{
echo $1
}
主程序脚本:
#!/bin/sh
. func.sh
func1 "Hello world!"
㈦ linux 脚本怎么定义子shell能用的函数
看如下示例,可以实现把函数传递到子shell中,子shell在linux脚本中使用()实现,即在()中的代码会在子shell中执行,代码如下:
#!/bin/bash
#Scriptname:do_square
functionsquare{
localsq#sqislocaltothefunction
let"sq=$1*$1"
echo"Numbertobesquaredis$1."
echo"Theresultis$sq"
}
echo"Givemeanumbertosquare."
readnumber
value_returned=$(square$number)#子shell
echo"$value_returned"
执行效果如下:
㈧ linux脚本中怎样在一个文件中调用另一个文件定义的函数
source myFile文件路径
或者
. myFilw文件路径
㈨ linux中的if函数怎么用啊
题主你好,
我这边把你的代码敲了一遍, 没有出现你说的情况.
测试所用代码:
写在最后: 题主把你那边所用的系统以及代码运行截图发过来,我看一下.
另外关于shell语法这东西,熟悉了也就好了,你之所以会生气是因为刚接触shell,怎么调都不和你心意,后期基本的语法都玩熟了,也就没这种想法了。c语言其实也一样,如果没人告诉你语法,而是你自己去猜测,去试,碰一鼻子灰的时候也是现在写shell时的心态.
另外当你熟悉了一门语言后,再去接触其它语言,尤其是语法差异较大的语言,就会觉得很别扭,都是先入为主的思想弄的,反过来想,如果你一开始接触的是shell,可能现在就会觉得c很别扭。你现在可能觉得不是这样的,那是因为你现在会c语言.
所以我想说的是不管是啥语言,不管设计样,既然要用它,就静下心来,盘它就对了:)
=====
希望可以帮到题主, 欢迎追问.
㈩ 在linux下shell脚本中if中用到or怎么写
linux下shell脚本的逻辑的or用运算符 || 表示,if中用到or的写法实例如下:
a=10
b=20
if[[$a-lt 50||$b-gt 50]]
then
echo"返回 true"
else
echo"返回 false"
fi
其中$a-lt100表示a<50 为真;$b-gt 50 表示b>50为假;真 or 假为真。
所以输出结果为:返回 true
(10)linux脚本函数扩展阅读
1、shell中流程控制if基本语法介绍:
if condition
then
command1
command2 ...
commandN
fi
2、shell中的另一个逻辑运算符and (&&)用法实例介绍:
a=10
b=20
if[[$a-lt100&&$b-gt100]]
then
echo"返回 true"
else
echo"返回 false"
fi
输出结果为:返回 false