shell脚本语法 Linux基础4-Shell语法

09/11 10:25:32 来源网站:辅助卡盟网

执行:(可以传入参数)

chmod +x knowar.sh
./knowvar.sh 1 4 6
filename:./knowvar.sh
first var:1
second var:4
third var:6

4.2 其它默认变量 网页版格式有误!

参数说明

\$#

代表传入参数的个数。

\$*

由所有参数构成的用空格隔开的字符串。

\$\@

每个参数分别用双引号括起来的字符串。

\$\$

脚本当前运行的进程ID。

上一条命令的退出状态(不是stdout,是exit code),0表示正常退出,其他值表示错误。

\$(command)

返回command这条命令的stdout 可嵌套。

'command'

返回command这条命令的stdout 不可嵌套。

5 数组

数组中可以存放多个不同类型的值,只支持一维数组,初始化时不需要指明数组大小。

数组下标从0开始。

5.1 定义

数组用小括号表示,元素之间用空格隔开。

array=(1 abc "def" yrx)

也可以直接定义数组中某个元素的值。

array[0]=9
array[1]=pp
array[2]="qq"
array[3]=dfjb

5.2 读取数组中某个元素的值

格式:

${array[index]}

例如:

array=(1 abc "def" dfjb)
echo ${array[0]}
echo ${array[1]}
echo ${array[2]}
echo ${array[3]}

5.3 读取整个数组

格式:

${array[@]} # 第一种写法
${array[*]} # 第二种写法

5.4 数组长度

类似于字符串。

shell 脚本语法 数组_shell脚本语法_hadoop中 shell脚本语法学习

${#array[@]}
${#array[*]}

6 expr命令6.1 格式

expr命令用于求表达式的值,格式为:

expr 表达式

表达式说明:

用空格隔开每一项;把反斜杠放在shell特定的字符面前(发现表达式运行错误时,可以试试转义);对包含空格和其他特殊字符的字符串要用引号括起来;expr会在stdout中输出结果。如果为逻辑关系表达式,则结果为真,stdout为1,否则为0;expr的exit code:如果为逻辑关系表达式辅助论坛,则结果为真,exit code为0,否则为1.6.2 字符串表达式

#! /bin/bash
str="Hello world!"
echo `expr length "$str"`       # 不是单引号,是左上角的符号,表示执行这个命令
echo `expr index "$str" awl`
echo `expr substr "$str" 3 5`
12
3
llo w 注意从0开始!

6.3 算术表达式

expr支持普通的算术操作,算术表达式优先级低于字符串表达式,高于逻辑关系表达式。

#! /bin/bash
a=15
b=7
echo `expr $a + $b`                         #22
echo `expr $a - $b`                         #8                               
echo `expr $a \* $b`                        #105
echo `expr $a / $b`                         #2
echo `expr $a % $b`                         #1
echo `expr \( $a + 1 \) \* \( $b - 1 \)`    #96

6.4 逻辑关系表达式

a=3
b=4
echo `expr $a \> $b`  # 输出0,>需要转义
echo `expr $a '<' $b`  # 输出1,也可以将特殊字符用引号引起来
echo `expr $a '>=' $b`  # 输出0
echo `expr $a \<\= $b`  # 输出1
c=0
d=5
echo `expr $c \& $d`  # 输出0
echo `expr $a \& $b`  # 输出3
echo `expr $c \| $d`  # 输出5
echo `expr $a \| $b`  # 输出3