shell变量定义【学习总结】

2020-11-21  本文已影响0人  夜希辰

学习目录
一、如何定义变量
二、取消变量
三、双引号" "和单引号' '有什么相同和不同之处
四、通配符
五、shell脚本编写规范
六、执行脚本方式
七、脚本增加可执行权限

shell是什么?

简单来说就是将需要执行的命令保存到文本中,按照顺序执行。它是解释型的,意味着不需要编译。

一、如何定义变量

1、基本方式
2、命令执行结果赋值给变量
3、交互式定义变量(read)
4、定义有类型的变量(declare)

变量名的定义规则:
变量名严格区分大小写,不能有特殊字符,不能以数字开头,等号两边不能有任何空格,变量名尽量做到见名知意

1、基本方式
直接赋值给一个变量,变量名=变量值

[root@bigdata04 ~]# A=hello
[root@bigdata04 ~]# echo $A---获取变量
hello
[root@bigdata04 ~]# B="hello world"-----变量值如果有空格用引号引起来
[root@bigdata04 ~]# echo $B
hello world
[root@bigdata04 ~]# echo ${B}-----获取变量,可以获取变量的某一部分
hello world
[root@bigdata04 ~]# echo ${B:3:2}
lo
[root@bigdata04 ~]# echo ${B:0:2}
he

2、命令执行结果赋值给变量

[root@MissHou ~]# B=`date +%F`
[root@MissHou ~]# echo $B
2019-04-16

3、交互式定义变量(read)
目的:让用户自己给变量赋值,比较灵活
常见选项释义:
-p 定义提示用户的信息
-n 定义字符数(限制变量值的长度)
-s 不显示(不显示用户输入的内容)
-t 定义超时时间,默认单位为秒(限制用户输入变量值的超时时间)

用法1:用户自己定义变量值
[root@MissHou ~]# read name
harry
[root@MissHou ~]# echo $name
harry
[root@MissHou ~]# read -p "Input your name:" name
Input your name:tom
[root@MissHou ~]# echo $name
tom
用法2:变量值来自文件
[root@MissHou ~]# cat 1.txt 
10.1.1.1

[root@MissHou ~]# read ip < 1.txt 
[root@MissHou ~]# echo $ip
10.1.1.1

4、定义有类型的变量(declare)
目的: 给变量做一些限制,固定变量的类型,比如:整型、只读
用法:declare 选项 变量名=变量值
常用选项:
-i 将变量看成整数 declare -i A=123
-r 定义只读变量 declare -r B=hello

二、取消变量

unset 变量名

[root@bigdata04 ~]# unset B
[root@bigdata04 ~]# echo $B

三、双引号" "和单引号' '有什么相同和不同之处

相同点:引号中的内容可以作为一个整体
不同点:双引号可以引用变量,单引号不能引用变量

四、通配符

*:匹配0个或者任意多个字符
:任意单个字符
[a-z] :括号内的任意单个字符
:取反
{string,string,string} :匹配括号里面用逗号隔开的所有的字符串
{1..100} :匹配一个序列

五、shell脚本编写规范

案例:

#!/bin/env bash

# 以下内容是对脚本的基本信息的描述
# Name: first_shell.sh
# Desc: num1
# Path: /shell01/first_shell.sh
# Usage:/shell01/first_shell.sh
# Update:2019-05-05

echo "hello world"
echo "hello world"
echo "hello world"

1.脚本名称 ***.sh

2.脚本内容
1)定义解析器
#!/bin/bash
#!/bin/env bash 优势:会自动去找当前系统的解析器位置
2)注释说明
#
3)程序本身
定义变量+基本命令+基本语法+思想

六、执行脚本方式

1、标准脚本执行方法:相对路径或者绝对路径
前提:标准执行方式脚本必须要有可执行权限

[root@MissHou shell01]# /shell01/first_shell.sh---绝对路径
或者
[root@MissHou shell01]# ./first_shell.sh---相对路径

2、非标准的执行方法(不建议)
场景:查看脚本执行过程;或者脚本无法赋予可执行权限
解析器 +脚本文件

[root@MissHou shell01]# bash first_shell.sh
[root@MissHou shell01]# sh first_shell.sh
[root@MissHou shell01]# bash -x first_shell.sh
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
+ echo 'hello world'
hello world
----------------
-x:一般用于排错,查看脚本的执行过程
-n:用来查看脚本的语法是否有问题
------------
七、脚本增加可执行权限
[root@MissHou shell01]# chmod +x first_shell.sh
上一篇 下一篇

猜你喜欢

热点阅读