Shell脚本学习

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 18:03   2110   0

1.基本语法及变量的使用方法。

shell脚本第一行:#!/bin/bash #用作shell命令的完全路径:显示后期命令以哪种shell来执行命令

除了上述外以#开头的皆为注释

shell进程创建时一般以.sh结尾

创建步骤:

第一步:创建一个包含命令和控制结构的shell文件。

第二步:修改这个文件的权限使它可以执行。

使用chmod u+x

第三步:执行

方法1:./example.sh

方法2:使用绝对路径

方法3:bash example.sh

变量是shell传递数据的一种方法,变量是用来代表每个值的符号名。

shell有两种变量:临时变量和永久变量

临时变量:shell程序内部定义的,使用范围仅限于定义它的程序,对其他程序不可见。包括:用户自定义变量、临时变量、预定义变量。

永久变量是环境变量,其值不随shell脚本的执行结束而消失。

例:$PATH

用户自定义变量:由字母或下划线打头,由字母、数字或下划线组成,并且大小写字母意义不同。变量名长度没有限制。

使用变量值时,要在变量名前面加前缀 "$"。

变量赋值:赋值号"="两边没有空格。

例如:A=aaa

例:将一个命令的执行结果赋给变量:

A=`date`

echo $A

B=$(ls -l)

echo $B

列出所有的变量

set命令

例:set | grep DAY

单引号和双引号的区别:

单引号之间的内容原封不动地指向了变量。

双引号取消了空格的作用,特殊符号的含义保留。

删除变量

unset NAME

位置变量和特殊变量

位置变量:Shell解释执行用户的命令时,将命令行的第一个字作为命令名,其他字作为参数。由出现在命令行上的位置确定的参数称为位置参数。使用$N来表示.

例如:./example.sh file1 file2 file3

$0表示这个程序的文件名 example.sh

$N 这个程序的第N个参数

特殊变量:有些变量是一开始执行script脚本时就会设定,且不能修改,但我们不叫系统变量,而叫特殊变量。这些变量当一执行程序时就有了,用户无法将一般的系统变量设定成只读,以下是一些特殊变量:

$* #这个程序的所有参数

$# #这个程序的参数个数

$$ #这个程序的PID

$! #执行上一个后台程序的PID

$? #执行上一个指令的返回值

Read命令:

作用:从键盘读入数据,赋给变量

例:read a b c

1 32 3

echo $a $b $c

expr命令:

作用:shell变量的算术运算。

格式:expr 表达式

例:expr 3 + 5 #注意运算符中间必须要有空格

变量测试语句:

test

格式:test 测试条件 #测试范围:整数,字符串,文件。

字符串和变量:

test str1==str2 #是否相等

test str1!=str2 #是否不等

test str1 #测试是否为非空

test -n str1 #测试是否为空

测试整数:

test int1 -eq int2 #==

test int1 -ge int2 #>=

test int1 -gt int2 #>

test int1 -le int2 #<=

test int1 -lt int2 #<

test int1 -ne int2 #!=

测试文件:

test -d file #测试是否为目录

test -f file #测试是否为文件

test -x file #测试是否可执行

test -r file

test -w file

test -e file #测试是否存在

test -s file #测试大小是否为空

以上都可以省略test,写成这种形式:[ -s file ].

流程控制:

语法:

if 条件1

then

语句

elif 条件2

then

语句

else

语句

fi

扩展;分号,表示两个命令写在同一行。互不影响

&&表示前一个命令成功才执行下一个命令

case 流控制语句:

适用于多分支

格式:

case 变量 in

字符串1) 命令列表1

;;

...

字符串n) 命令列表n

*) 命令列表n+1

;;

esac

循环语句for...done语句

格式:

for 变量 in 名字表

do

命令列表

done

while循环语句

格式:

while 条件

do

命令

done

使用(())扩展shell中算数运算的使用方法,oeO ] NY INNH N[ _IN[O ] NY INNH [\[\ N[ _IN[O

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP