编程语言
首页 > 编程语言> > Sheel编程入门

Sheel编程入门

作者:互联网

Sheer 编程

1. 概念

1.1 简述

1.2 sheel 的版本

查看当前 sheel版本
echo $SHEEL
/bin/bash

2. 创建并执行一个 sheel文件

2.1 感受批量处理

[root@nt 桌面]#  (date;ll;echo 1+1)  # 命令之间用;分割
2021年 12月 20日 星期一 19:25:02 CST
总用量 68
-rwxr--r--. 1 root root  174 12月 18 12:15 1.sh
-rw-r--r--. 1 root root  740 12月 20 14:42 array1.sh
-rw-r--r--. 1 root root  117 12月 20 17:10 array2.sh
-rw-r--r--. 1 root root  362 12月 18 15:00 case1.sh
-rw-r--r--. 1 root root  295 12月 20 10:56 case2.sh
-rw-r--r--. 1 root root  123 12月 18 15:17 for1.sh
-rw-r--r--. 1 root root  412 12月 18 15:21 for2.sh
-rw-r--r--. 1 root root  208 12月 18 15:32 for3.sh
-rw-r--r--. 1 root root  936 12月 20 11:15 for4.sh
-rw-r--r--. 1 root root  619 12月 20 11:37 for5九九乘法表.sh
-rw-r--r--. 1 root root  940 12月 20 14:24 for6.sh
-rw-r--r--. 1 root root  351 12月 20 14:21 for7.sh
-rw-r--r--. 1 root root 1047 12月 20 16:57 function1.sh
-rw-r--r--. 1 root root  116 12月 18 14:06 if1.sh
-rw-r--r--. 1 root root  197 12月 18 14:42 if2.sh
-rw-r--r--. 1 root root  410 12月 20 10:58 if3.sh
-rw-r--r--. 1 root root  482 12月 20 14:30 while1.sh
1+1

2.2 定义变量

[root@nt 桌面]#  i=1;echo $i;  # 给变量赋值 等号前后不能有空格   #$变量名:获取变量值
1

2.3 创建 sheel文件

[root@]# touch 1.sh   #创建空文件
[root@]# vim 1.sh     #编辑文件
[root@]# ll           #查看文件列表
总用量 8
-rw-r--r--. 1 root root   43 12月 18 09:31 1.sh
-rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg
[root@]# cat 1.sh     # 查看文件内容
# /bin/bash
date;
i=1;
echo $i;
ls -l;
[root@]# chmod u+x 1.sh    #授予当前用户对1.sh的执行权
[root@]# ll
总用量 8
-rwxr--r--. 1 root root   43 12月 18 09:31 1.sh
-rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg
```

### 2.4 执行 sheel文件
- 方式一:./sheel文件
- 方式二:shource sheel文件
- 方式三:/bin/bash sheel文件
- 方式四:sh sheel文件
```sheel
[root@]# ./1.sh
2021年 12月 18日 星期六 09:34:12 CST
1
总用量 8
-rwxr--r--. 1 root root   39 12月 18 09:34 1.sh
-rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg
[root@]# source 1.sh
2021年 12月 18日 星期六 09:34:39 CST
1
总用量 8
-rwxr--r--. 1 root root   39 12月 18 09:34 1.sh
-rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg
[root@]# /bin/bash 1.sh
2021年 12月 18日 星期六 09:34:50 CST
1
总用量 8
-rwxr--r--. 1 root root   39 12月 18 09:34 1.sh
-rw-------. 1 root root 1232 12月 17 10:24 anaconda-ks.cfg
```
## 3. window 与 Linux实现文件互传
### 3.1 通过 rzmingl
- 安装 rz
- <font color=red>yum install lrzsz</font>
### 通过 xftp文件

## 4. shell编程
### 4.1 数据类型
- 字符串类型:双引号、单引号
- 整数:注意 boolean用0和1表示
- 浮点数
### 4.2 语法
- 以分号表示语句结束   换行也可以表示语句结束
- 变量命名:由数字 字母 下划线组成,不能以数字开头 ,不能是shell关键字,区分大小写
### 4.3 变量
- 给变量赋值

```sheel
[root@java37master ~]# i=1;  #等号两边不能有空格
[root@java37master ~]# i= 1
-bash: 1: 未找到命令
[root@java37master ~]# i =1
-bash: i: 未找到命令
```
- 输出变量

```sheel
[root@java37master ~]# echo $i;   #输出变量i的值 并换行
1
[root@java37master ~]# printf $i;  #输出变量i的值 但不换行
1[root@java37master ~]# 
```
- $使用
```sheel
1[root@java37master ~]# i=1;j=$i;echo $j;   #$i  :获取变量i的值
1
[root@java37master ~]# j=${i};echo $j;      #${i}  :获取变量i的值
1
[root@java37master ~]# j=$((i+1));echo $j;  #$((式子))  :进行数学运算
2
[root@java37master ~]# j=$[i+1];echo $j;    #$[式子]    :进行数学运算
2
[root@java37master ~]# j=$(date);echo $j;   #$(命令)    :执行语句 并获取结果
2021年 12月 18日 星期六 09:59:11 CST
```
- 通过键盘给变量赋值:read 函数
```sheel
[root@java37master ~]# read -p "请输入一个整数:" i;
请输入一个整数:3
[root@java37master ~]# echo $i;
3
```
### 4.4 运算

```sheel
[root@java37master ~]# i=2;
[root@java37master ~]# j=$((1+i));echo $j;   #通过$((式子))
3
[root@java37master ~]# j=$[1+i];echo $j;    #通过$[式子]
3
[root@java37master ~]# j=$(expr 1+1); echo $j;  #获取的是字符串
1+1
[root@java37master ~]# j=$(expr 1 + 1); echo $j; #有空格 才进行运算
2
[root@java37master ~]# j=$(expr 1 + i); echo $j;  #必须是常量值
expr: 非整数参数

[root@java37master ~]# j=$(expr 1 + $i); echo $j;  #$i获取的就是值了
3
[root@java37master ~]# j=`expr 1 + $i`; echo $j;   #列表必须是破折号  在1旁边
3

[root@java37master ~]# j=$(expr 3 \* 2 ); echo $j;  #乘法运算
6
[root@java37master ~]# j=$(expr 3 / 2 ); echo $j;   #除法运算
1
[root@java37master ~]# j=$(expr 3 % 2 ); echo $j;   #求余运算
1
```
### 4.5 运算符
**数字运算符**
- -eq 等于
- -ne 不等于
- -gt 大于
- -ge 大于等于
- -lt 小于
- -le 小于等于
**字符串运算符**
- = 判断是否相等
- != 判断是否不同
- -n 是否为空
**逻辑运算符**
- ! 取反
- -a 与
- o 或

标签:12,入门,--,Sheel,编程,sh,java37master,rw,root
来源: https://www.cnblogs.com/zk2020/p/15712771.html