1.1. shell脚本 执行方式
shell脚本有三种执行方式:
l 方式一:sh执行脚本
sh执行,进入脚本的工作目录,然后使用对应的sh或bash来执行脚本,这 种执行方式,脚本文件不需要具有可执行权限。
[ root @ node1 ~] # cd / export / data / shell /
[ root @ node1 shell ] #sh hello.sh
hello world
l 方式二:工作目录执行
执行脚本时,先进入到脚本所在的目录,然后使用 ./脚本方式执行,这种执行方式,必须保证脚本文件具有可执行权限。
[root@node1 ~]#cd / export / data / shell /
[root@node1 shell]# chmod +x hello.sh
[root@node1 shell]# ./ hello.sh
hello world
l 方式三:绝对路径执行
绝对路径中执行,指的是直接从根目录/到脚本目录的绝对路径,这种执行方式,必须保证脚本文件具有可执行权限。
[root@node1 ~]# /export/shell/hello.sh
hello world
1.1. shell的数据类型****
字符串:****
字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。建议使用双引号,因为双引号里可以有变量和特殊字符,可以按照变量和特殊字符去使用。
声明字符串类型的变量:
整数型 :****
在Shell中所有的变量默认都是字符串型。默认情况下,所有的数值都是不能进行运算的,如果想要进行数学运算,可以使用“[运算式]”方式运算(后续讲)。
1.1. 变量****
1.1.1. 简介****
shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。
在shell中有3种变量:用户变量、环境变量、特殊变量,其中用户变量在编程过程中使用量最多,环境变量主要是在程序运行时需要设置,特殊变量在对参数判断和命令返回值判断时会使用,。
l 变量的定义语法:****
变量名=变量值****
l 变量的定义需遵循的规则****
1) 变量名可以由字母、数字和下画线组成,但是不能以数字开头。
2) 在 Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须使用特殊命令。
3) 变量用等号"="连接值,"="左右两侧不能有空格。
4) 变量值中如果有空格,则需要使用单引号或双引号包含,如 test="hello world!"。双引号括起 来的内容"$"和反引号者都拥有特殊含义,而单引号括起来的内容都是普通字符。
5) 在变量值中,可以使用转义符""。
6) 不能使用bash里的关键字(可用help命令查看保留关键字)。
1.1.2. 用户变量****
1.1.2.1. 定义变量****
在对变量赋于字符串值时,建议使用引号将其包裹。如果字符串中存在空格,请一定要使用单引号或双引号将整个内容包裹。注意:单引号里的内容原封不动的输出,双引号里有变量的调用则会调用变量
[root@node1 shell]# username="itcast"
1.1.1.1. 访问变量****
要对变量进行调用时,在变量名前加美元符号$
| [root@node1 shell]# echo $usernameitcast |
|---|
如果需要增加变量的值,那么可以进行变量值的叠加。不够变量需要用双引号包含"{变量名}
| [ root @ node1 ~] # usernmae**="itcast" [ root @ node1 ~] # echo usernamedb** **.** log #这种方式不可以 **.** log**[** root **@** node1 **~]** # echo "username"db.log #可以itcastdb.log[ root @ node1 ~] # echo ${username}db.log #可以 itcastdb.log |
|---|