基础规则-执行脚本
#方法1 sh
[root@manager /server/scripts]# sh 2.3-1-exec.sh
tar: 从成员名中删除开头的“/”
#方法2 .或source
[root@manager /server/scripts]# . 2.3-1-exec.sh
tar: 从成员名中删除开头的“/”
#方法3 输入重定向方法
[root@manager /server/scripts]# sh <2.3-1-exec.sh
tar: 从成员名中删除开头的“/”
[root@manager /server/scripts]# ll /tmp/etc.tar.gz
-rw-r--r-- 1 root root 10246600 1月 8 10:51
/tmp/etc.tar.gz
#linux 支持 < 很多 tr xargs 三剑客
#方法4 绝对路径方法
[root@manager /server/scripts]# ll /server/scripts/2.3-1-exec.sh
-rwxr-xr-x 1 root root 31 1月 8 10:50
/server/scripts/2.3-1-exec.sh
[root@manager /server/scripts]# /server/scripts/2.3-1exec.sh
tar: 从成员名中删除开头的“/”
执行方 法 | 应用场景 |
---|---|
sh | 执行各种命令 必备 |
./source | 在脚本中调用使用其他文件方法 在脚本中实现nginx include功能 , . /etc/init.d/fuctions 服务、命令检查脚本中 |
sh < | 几乎不会用 |
绝对路径 | 系统脚本 系统使用的脚本 需要+x权限 |
#./source 了解
[root@manager /server/scripts]# .
/etc/init.d/functions
[root@manager /server/scripts]# action "crond is running" /bin/true crond is running [ 确定 ]
[root@manager /server/scripts]# action "crond is not running" /bin/false crond is not running [失败]
书写shell脚本的习惯
- 运维对我们平时操作的习惯,有比较高的要求 rm
- 书写脚本 加上命令解释器 #!、bin/bash 脚本默认使用的命令解释器
-
! 幻数
-
[root@manager /server/scripts]# head -1 /bin/yum
#!/usr/bin/python
[root@manager /server/scripts]# file 2.3-2-checkweb.sh
3-2-check-web.sh: UTF-8 Unicode text
[root@manager /server/scripts]#
[root@manager /server/scripts]# file 2.3-2-checkweb.sh
2.3-2-check-web.sh: Bourne-Again shell script, UTF-8 Unicode text executable
- 加上版权信息:脚本作者 版本 时间
- 英文符号
- 书写成对的符号 ' ' " " $() () [ ] { }
shell变量
- 普通变量(局部变量)
- 环境变量(全局变量)
- 特殊变量
- *普通变量
- 变量
*存放我们经常使用的内容
*本质: 内存中的空间- 空间的位置 变量名
- 看见的内容 变量值
x + y =10 已知x=30 问 y=? 未知数
oldboy=666 #创建
echo $oldboy #使用 引用
- 变量的命名规则:
- 不能数字开头 最好也不要包含特殊符号!最好用_下划线
- 命名规律:推荐多个单词通过下划线连接(表名变量的作用)bingbing_age=16
- 驼峰写法:多个单词从第2个单词开始 首字母大写 LidaoAge=99
numberOfpeople=61 - 变量赋值注意事项:
[root@manager /server/scripts]# oldbing=666
[root@manager /server/scripts]# echo $oldbing 666
[root@manager /server/scripts]# oldbing=爱生活 爱冰冰
-bash: 爱冰冰: 未找到命令
[root@manager /server/scripts]# oldbing="爱生活 爱冰冰"
[root@manager /server/scripts]# echo $oldbing
爱生活 爱冰冰
引号 | 含义 |
---|---|
单引号 | 所见即所得 单引号里面内容 原封不动输出 |
双引号 | 与单引号类似 解析特殊符号 `` $() ! |
不加引号 | 与双引号类似 支持通配符 * {} *.txt |
反引号 | 优先执行命令 |
[root@manager ~]# echo '$PATH $(hostname) `whoami` {1..5}'
$PATH $(hostname) `whoami` {1..5}
[root@manager ~]# echo "$PATH $(hostname) `whoami` {1..5}" /sbin:/usr/sbin:/bin:/usr/bin manager root {1..5}
[root@manager ~]# echo $PATH $(hostname) `whoami` {1..5} /sbin:/usr/sbin:/bin:/usr/bin manager root 1 2 3 4 5