美文网首页
shell基础规则与习惯

shell基础规则与习惯

作者: a幕城 | 来源:发表于2020-01-13 15:37 被阅读0次

基础规则-执行脚本

#方法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变量

  • 普通变量(局部变量)
  • 环境变量(全局变量)
  • 特殊变量
  1. *普通变量
  • 变量
    *存放我们经常使用的内容
    *本质: 内存中的空间
    • 空间的位置 变量名
    • 看见的内容 变量值
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

相关文章

网友评论

      本文标题:shell基础规则与习惯

      本文链接:https://www.haomeiwen.com/subject/olxnactx.html