下边包车型客车例证定义了2个函数并拓展调用:

Shell函数,

上面包车型大巴例证定义了三个函数并拓展调用:

#!/bin/bash
demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

出口结果:

-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----

下边定义三个带有return语句的函数:

#!/bin/bash
funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

输出接近上边:

这个函数会对输入的两个数字进行相加运算...
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3 !

函数重回值在调用该函数后透过 $? 来获得。 函数参数
在Shell中,调用函数时得以向其传递参数。在函数体内部,通过 $n
的花样来获得参数的值,比方,$一表示第四个参数,$贰表示第二个参数…
带参数的函数示例:

#!/bin/bash
funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

输出结果:

第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

留意,$10无法获得第11个参数,获取第七个参数需求${10}。当n>=十时,必要运用${n}来赢得参数。

上边包车型大巴事例定义了2个函数并拓展调用:
#!/bin/bashdemoFun(){ echo “那是自家的率先个 shell 函数!”}echo
“—–函数初叶实行—–“demoFunech…

Shell 简介

Shell编制程序和java、PHP
编程同样,只要求有一个能编写代码的文书编辑器和贰个能分解实践的脚本解释器就能够了。

Linux的Shell系列众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)
    ……

相似我们熟练的是 Bash(Bourne Again
Shell),在一般职业中被广大应用。同时也是大繁多Linux系统暗中同意的Shell。

在一般景观下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像
#!/bin/sh,它同样也能够改为#!/bin/bash。

“#!” 告诉系统其后路线所钦定的次序便是解释此脚本文件的Shell程序。

#!/bin/bash
demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

第一个shell脚本

新建多少个文本test.sh,扩充名称叫sh(sh代表shell),扩充名并不影响脚本实施,见名知意就好,如若您用php写shell
脚本,增加名用php也是能够的。
#!/bin/bash
echo “Hello World !”

输出结果:

运行shell脚本的三种方法:

一、 作为可执行程序

cd到相应脚本目录推行脚本。

./test.sh    #实行脚本

在意:一定要写成./test.sh,而不是test.sh,运转其它二进制的次序也同等,直接写test.sh,linux系统会去PATH里找出有未有叫test.sh的,而唯有/bin,
/sbin,
/usr/bin,/usr/sbin等在PATH里,你的当前目录平时不在PATH里,所以写成test.sh是会找不到命令的,要用./test.sh告诉系统说,就在当前目录找。

澳门金沙国际,2、 作为解释器参数

那种运营方式是,直接运转解释器,其参数正是shell脚本的公文名,如:

/bin/sh test.sh

【澳门金沙国际】Shell函数。那种艺术运转的本子,不须求在首先行钦赐解释器音信,写了也没怎么用处。

—–函数初步施行—–

那是本人的第二个 shell 函数!

—–函数实施完结—–

shell 变量

  • 呈现变量赋值:

your_name=”runoob.com”

专注,变量名和等号之间不可能有空格。

  • 隐式变量赋值:

for file in ls /etc

以上是将/etc目录下的公文名循环出来。

上面定义三个包罗return语句的函数:

采纳变量

应用一个概念过的变量,只要在变量名前面加加元符号就能够,如:

your_name=”qinjx”
echo $your_name
echo ${your_name}

瞩目:定义赋值变量时不加$符号,惟有在动用时才增加。

#!/bin/bash
funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

Shell 字符串

字符串是shell编制程序中最常用最可行的数据类型(除了数字和字符串,也没啥别的类型好用了),字符串能够用单引号,也得以用双引号,也得以绝不引号。单双引号的分别跟PHP类似。

  • 单引号

str=’this is a string’

注意:
单引号里的任何字符都会原样输出,单引号字符串中的变量是不行的;
单引号字串中无法出现单引号(对单引号使用转义符后也要命)。

  • 双引号

your_name=’qinjx’
str=”Hello, I know your are “$your_name”! \n”

双引号的帮助和益处:

  1. 双引号里能够有变量
  2. 双引号里能够出现转义字符
  3. 拼接字符串

出口接近下边:

读取数组

读取数组成分值的一般格式是:
${array_name[index]}

实例

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

my_array=(A B "C" D)

echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"

实行脚本,输出结果如下所示:

先是个因素为: A
其次个成分为: B
其三个要素为: C
第八个因素为: D

收获数组中的全体因素

使用@ 或 * 能够获得数组中的全部因素,比如:

#!/bin/bash

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

实行脚本,输出结果如下所示:

数组的因素为: A B C D
数组的成分为: A B C D

获取数组的尺寸

取得数老板度的不2秘诀与收获字符串长度的不二等秘书籍1致,例如:

#!/bin/bash

my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D

echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

实行脚本,输出结果如下所示:

数组成分个数为: 四
数组成分个数为: 四

以此函数会对输入的四个数字举行相加运算…

输入第2个数字: 

1

输入第一个数字: 

2

七个数字分别为 一 和 贰 !

输入的多少个数字之和为 三 !

Shell 函数

linux shell 能够用户定义函数,然后在shell脚本中得以任由调用。
shell中等学校函授数的定义格式如下:
说明:
一、能够带function fun() 定义,也足以直接fun() 定义,不带任何参数。
二、参数重回,能够显得加:return
再次来到,倘若不加,将以最终一条命令运维结果,作为重临值。

上边包车型地铁例子定义了三个函数并张开调用:

#!/bin/bash

demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

输出结果:
—–函数起首试行—–
这是笔者的率先个 shell 函数!
—–函数实施达成—–

上边定义三个富含return语句的函数:
#!/bin/bash

funWithReturn(){
echo "这个函数会对输入的两个数字进行相加运算..."
echo "输入第一个数字: "
read aNum
echo "输入第二个数字: "
read anotherNum
echo "两个数字分别为 $aNum 和 $anotherNum !"
return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

输出接近上面:
那几个函数会对输入的多少个数字进行相加运算…
输入第一个数字:
1
输入第三个数字:
2
两个数字分别为 1 和 2 !
输入的七个数字之和为 3 !

函数重临值在调用该函数后经过 $? 来拿到。
注意:全部函数在使用前必须定义。那意味着必须将函数放在脚本开始有个别,直至shell解释器第一次发现它时,才方可采取。调用函数仅使用其函数名就能够。

参照小说:
http://www.runoob.com/linux/linux-shell.html

函数重返值在调用该函数后经过 $? 来获得。

函数参数

在Shell中,调用函数时能够向其传递参数。在函数体内部,通过 $n
的花样来得到参数的值,举个例子,$1代表第一个参数,$贰表示第四个参数…

带参数的函数示例:

#!/bin/bash
funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

输出结果:

第四个参数为 1 !

第三个参数为 2 !

第7个参数为 10 !

第捌个参数为 3四 !

第七二个参数为 7三 !

参数总量有 1壹 个!

作为2个字符串输出全数参数 一 二 3 四 五 6 7 8 九 34 73 !

只顾,$拾无法猎取第七个参数,获取第7个参数供给${10}。当n>=拾时,需求采纳${n}来获得参数。

相关文章