shell脚本函数调用
❶ shell脚本里的函数怎么调用
shell中的函数,要在定义这个函数的脚本中进行调用!
#!/bin/sh
echo_line(){
echodate
echo"Wellcometoshellfunc!"
}
echo_hello(){
echo"HelloWorld!"
}
##在这里调用,将全部代码写入test.sh就可以了
echo"callecho_hello"
echo_hello
echo"callecho_line"
echo_line
在命令行下执行:
$test.sh
❷ shell脚本怎么调用其他shell脚本
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢?
方法一: . ./subscript.sh
方法二: source ./subscript.sh
注意:
1.两个点之间,有空格,千万注意.
2.两个脚本不在同一目录,要用绝对路径
3.为简单起见,通常用第一种方法
例如:
复制代码代码如下:
main.sh #主脚本
subscripts.sh #子脚本,或者说被调脚本
[code]
[code]
###subscripts.sh 脚本内容如下:###
#!/bin/bash
string="Hello,World! \n"
复制代码代码如下:
###main.sh 脚本内容如下###
#!/bin/bash
. ./subscripts.sh
echo -e ${string}
exit 0
输出结果:
复制代码代码如下:
# chmod +x ./main.sh
# ./main.sh
Hello,World!
#
❸ 在linux 用shell脚本调用C语言的执行文件,用到什么函数,求大神帮分析一下
c调用shell为system(cmd)
shell调用c执行文件和调用普通的命令一样,如 ls cd pwd等命令都是c写的执行文件
❹ 参数传递:shell脚本调用一个带参数的python函数
把a b c写到文件里,如example.txt,然后shell里:cif filename <example.txt
❺ 用shell脚本编写一个函数,调用两个数据文件的逐行数据(每一行有两个数据)作为变量来计算,怎么编写
function fname(){
...
}
while read line
do
num1=`echo $line | awk '{print $1}'`
num2=`echo $line | awk '{print $2}'`
fname $num1 $num2
done < $file
❻ 如何在shell脚本里调用另一个shell脚本
子shell变量传递给父shell,中间可以保存个临时文件让父shell去读。下边是一个子shell,传递给父shell的一个例子,仅做参考#!/bin/bash(subvar="helloshell"echo"$subvar">temp.txt)readpvar
❼ 关于shell脚本#!的说明
Unix环境下的shell脚本通常都是#!/bin/sh开头,那么这句描述符究竟是什么含义呢,我试图解答这个问题。
首先#!必须出现在shell脚本的开头位置,后面跟一个shell解析器,比如/bin/sh,或者/bin/bash,或者/usr/bin/ksh, 等等.
我们看到 a.sh使用的可执行程序是/bin/bash,这个/bin/bash是在a.sh文件里面通过#!指定的。
a.out是一个可执行程序(ELF格式),它可以独自运行,但是不能通过一个shell来运行。
#!实际上就是文件的魔数(magic number)
我们知道ELF格式为文件头4个字符是".ELF",即(0x 7f 45 4c 46),而其实字符"#!"是shell脚本文件的魔数,即(0x 23 21),因为shell脚本是文本文件,#!就是两个可读的魔数字符。
这个魔数是干什么用的呢?它是被操作系统exec系列函数使用的,exec函数需要加载一个文件时,它会读取文件开头魔数域,如果是".ELF",那么就是一个ELF格式的可执行文件,如果是"#!"那么就是一个脚本文件,然后再从"#!"后面继续读取脚本解析器,最后调用脚本解析器可执行程序,并把脚本本身作为参数传递给他。
注意
当前shell会读取文件file的魔数
我也不清楚为什么sh file格式不能支持file是二进制可执行程序,理论上sh还是可以去分析file的魔数,从而判断file的类型,然后做区分处理。
https://en.wikipedia.org/wiki/Shebang_(Unix)
❽ shell 脚本中后台调用函数结束
比面shell脚本文件:#===========test.sh! /bin/shecho_line(){ echo date echo "Wellcome to shell func!"}echo_hello(){ echo "Hello World!"}#======================shell调用两函数啊我用【./test.sh echo_hello】却没输我已经给test.sh加执行权限
请问envsetup.sh边
function gettop()
{
local TOPFILE=build/core/envsetup.mk
if [ -n "$TOP" -a -f "$TOP/$TOPFILE" ] ; then
echo $TOP
else
if [ -f $TOPFILE ] ; then
# The following circumlocution (repeated below as well) ensures
# that we record the true directory name and not one that is
# faked up with symlink names.
PWD= /bin/pwd
fi
}并没返值
调用何获取参数 T=$(gettop)
实际参数谢谢
❾ shell调用其他脚本函数
使用位置参数:
b.sh里面这样写
#!/bin/bash
basha.sh10020
a.sh里这样写
#!/bin/bash
number=$1
number_1=$2
functionfun1(){
echo$1
}
functionfun2(){
echo$1
}
fun1$number
指出几点问题:
你的原脚本里为什么fun_get=fun1
这样做没什么意义;
fun2并没有用到。
❿ 在shell脚本中调用函数,如果函数中使用了$1这样的参数
是调用这个函数时,传进去的参数~~~
[root@localhost test]# bash shell.sh
haha
[root@localhost test]# cat shell.sh
#!/bin/bash
function fun {
echo $1
}
fun haha