意义#
执行一系列命令
视频框架#
- 介绍,欢迎
- HelloWorld
- 变量
- 数学函数
- if语句
- 退出代码
- while循环
- 更新脚本,保持服务器最新状态
- for循环
- 脚本应该存储在文件系统哪个位置
- 数据流,标准输入、标准输出、标准错误输出
- 函数
- case语句
- 调度作业(SchedulingJobs)Part1
- 调度作业(SchedulingJobs)Part2
- 传递参数
- 备份脚本
准备#
需要一台运行Linux系统的计算机(或虚拟机)
一些基本操作#
新建或编辑脚本#
nano myscript.sh内容#

ctrl + o 保存,ctrl + x 退出
如何执行脚本#
权限#
#给脚本赋予执行的权限
sudo chmod +x myscript.sh执行#
执行前查看权限#

运行#
./myscript.sh查看脚本#
cat myscript.sh更多语句的脚本#
ls
pwd输出
shebang#
告诉系统哪个解释器准备运行脚本(不特别指定的情况),比如bash ./myscript.sh就特别指明了用bash运行脚本,所以这里指的是./myscript.sh这种情况使用的哪个默认解释器
#!/bin/bash
echo "Hello World!"
echo "My current working directory is:"
#结果中pwd会另取一行跟这里的显式换行没关系, 我猜是echo在最末尾加了\n换行符
pwd
关于echo行末换行符#
echo -n abc;echo c
这里使用-n禁止输出默认换行符,所以两个c连接上了
变量#
变量左右两侧都不允许有空格!!#
nano快捷键#
ctrl + k ,删除当前行
基本使用#
#!/bin/bash
myname="Jay"
#myage="40"
my="xxx"
myage="40"
#""和''的区别
echo 'Hello, my name is $myname.'
echo "Hello, my name is $myname."
#注意下面这句,不会去找变量m,my或者mya(以word字符为界,即字母或下划线为开头,直到字母或数字或下划线终止)
echo "I'm $myage years old."
#下面这句,将单引号进行了转义
#视频中的方法有点问题,这里貌似只能通过
#下面这种分段的方法
echo 'I'\''m $myage years old.'
减少重复操作#
# myscript.sh
#!/bin/bash
word="fun"
echo "Linux is $word"
echo "Vediogames are $word"
echo "Sunny days are $word"
存储临时值#


now=$(date)
echo "The system time and date is:"
echo $now
系统环境变量(默认变量)#
视频中的#

输出
自己测试#

系统变量字母全是大写英文#
#查看系统变量
env
数学函数#
运算符左右两边都要有空格!!#
shell中执行算术运算#
expr 3 + 3
expr 30 - 10
expr 30 / 10乘法*号是通配符#
反斜杠转义星号
expr 100 \* 4变量运算#
