十. [博学谷学习记录]|超强总结,用心分享|大数据 Linux(十)

87 阅读2分钟

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种变量:用户变量、环境变量、特殊变量,其中用户变量在编程过程中使用量最多,环境变量主要是在程序运行时需要设置,特殊变量在对参数判断和命令返回值判断时会使用,。

变量的定义语法:****

变量名=变量值****

变量的定义需遵循的规则****

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