ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2.RHCE

2022-07-25 12:31:28  阅读:161  来源: 互联网

标签:Code 变量 RHCE echo 判断 执行 View


1.shell脚本

1.1 shell脚本了解

1.语言分类  

  编译型语言:C,C++,Go等为编译型语言,程序运行需要提前编译,编译语言都有编译器
  解释型语言:Shell,Python,php等为解释型语言,程序运行不需要提前编译,一边执行,一边解释,每种解释型语言都有解释器
View Code

2.shell了解

  Shell是一门编程语言,如:C  C++  java 等类似。
  Shell语言支持大部分编程语言都具备的功能:if判断,for循环,变量,数组,函数,加减乘除,逻辑运算。
View Code

3.Shell脚本组成

 vim user.sh
  #1.环境声明   
    #!/bin/bash
  #2.注释信息
    #注释信息
  #3.可执行代码
     …
View Code

4.编写并执行脚本

 1.编写脚本
  vim hello.sh
   #!/bin/bash
   echo hello word
 2.赋予执行权限
  chmod u+x hello.sh
 3.执行脚本
  ./hello.sh 或 bash hello.sh #前台运行
  ./hello.sh & #后台运行
View Code

5.脚本注意事项

 bash脚本中不能使用别名,ll不能使用

1.2 特殊符号,变量,文件状态

1. 特殊符号

 " "      #双引号,引用整体
 ' '       #单引号,引用整体并取消所有特殊字符含义
 $[]     #四则运算(+ - * / % 取余数) 
 $()     #将命令的输出结果作为参数
 ``      #将命令的输出结果作为参数
 echo "$PATH"  #输出/usr/local/sbin:/usr/local/bin……
 echo '$PATH'  #输出$PATH
 echo $[10%3]  #输出1
 touch $(date +%F)-ab.txt#结果为2021-05-09-ab.txt(注意空格)
 touch "`date`"-file.txt #不加""会形成多个文件
View Code

2. 变量

 1. 命名:变量名由字母/数字/下划线组成,不能以数字开头,不能使用命令和特殊符号,区分大小写
 2. 取消变量:unset 变量名
 3. 变量种类
   环境变量:变量名一般都大写,用来设置用户/系统环境
   位置变量:bash内置,存储执行脚本时提供的命令参数
   预定义变量:bash内置,可直接调用的特殊值,不能直接修改
   自定义变量:用户自定义
   env 命令查看系统所有环境变量
   set  命令查看系统所有变量,包括用户自定义变量
 4.查看是否有自定义变量
   bb="echo hello" #变量值有空格要用引号
   set | grep bb
 5.位置变量
   $0    #脚本名称
   $1    #第一个参数   
   $n… #第n个参数
 6.预定义变量
   $* #显示所有参数内容
   $# #显示有多少个参数
   $? #显示上一条命令的执行结果(0代表正确,非0代表错误)
   $$ #显示脚本进程号(PID)
View Code

3.判断文件状态

  -e     #判断文档(文件/目录)是否存在,存在为真
  -d     #判断目录是否存在,存在为真
  -f     #判断文件是否存在,存在为真
  -r     #可读为真
  -w     #可写为真
  -x     #可执行为真
 [root@localhost ~]# [ -e /etc/ ] #判断文档是否存在
 [root@localhost ~]# echo $?
View Code

1.3  字符串对比和判断,整数比较和计算

1.字符串对比

  #相等 ==  
  #不相等 !=    
 [ $USER == root ]
 [ $root != he ]
 [ abc != bcd ]

2.字符串判断 

 -z   #文件/字符串的值为空为真
 -n   #文件/字符串的值非空为真(相当于 ! -z)
 #判断文件为空为真(注意空格)
 [~]# [ -z /etc/passwd ] #(判断文件不一定准,一般用来判断变量)
 [~]# [ -n /etc/passwd ]
 [~]# [ -z $i ]
 [~]# [ -n $i ]
 [~]# [ ! -z $i ] #-n
View Code

3.整数比较

  -gt   #大于
  -ge   #大于等于
  -lt   #小于
  -le   #小于等于
  -eq   #等于
  -ne   #不等于
 [root@localhost ~]# [ 1 -ne 2 ]
 [root@localhost ~]# echo $?  
View Code

4.常用数值运算方式

  $[]    #四则运算(+ - * / % 取余数) 
  $(())   #数值运算工具
  expr  #数值运算工具
  let     #数值运算工具
 [a~]# echo $[10+5]
 [b~]# echo $((10+5))
 [c~]# echo `expr 2 + 3`   1.每一部分都要有空格
 [c~]# echo $(expr 10 - 3)
 [c~]# echo `expr 10 \* 3` 2.乘法要用“\”转义掉*的特殊功能
 [d~]# let c=1+1
 [d~]# let c=a+b
 [d~]# let c++
 [d~]# echo $c  
View Code

1.4 Shell条件判断与循环

1.条件判断结构

  &&   #逻辑与(执行到出现错误为止)
  ||    #逻辑或(二个只能执行一个)
  ;     #条件之间没有逻辑关系
 1. A && B  #当A命令执行成功后才会执行B,如果A执行失败则B不执行
  [ -f /opt/test.txt ] && cp /opt/test.txt /root
  #判断存在且是文件执行拷贝操作(并且关系)
 2. A || B  #两条命令只能执行一条
  rpm -q vsftpd || yum -y install vsftpd && systemctl start vsftpd && systemctl enable vsftpd && systemctl status vsftpd
  #看成两段
 3. A ; B  #顺序执行
 touch /opt/oo.txt ; rm -rf /opt/* ; touch /opt/xx.txt
View Code

2.if条件判断结构 

 1.if单分支
   if [条件判断];then
      条件成立时,执行的命令
   fi
 2.if双分支
   if [条件判断];then
        条件成立时,执行命令a
   else
        条件不成立时,执行命令b
   fi 
 3.if 多分支语句
   if [条件判断1];then
         条件1成立时,执行命令a
   elif [条件判断2];then
         条件2成立时,执行命令b   
   elif [条件判断3];then
         条件3成立时,执行命令c
   ...省略更多条件
   else
         所有条件都不成立时,执行命令d
   fi   
View Code

3.case语法结构

   case $变量名 in
   值1)
       执行的命令xx;;  #如果变量中的值等于值1,则执行的命令
   值2)
       执行的命令yy;;  #如果变量中的值等于2,则执行的命令
   ...省略其他分支
   *)
       执行的命令zz;;  #如果变量中的值都不是以上的值,则执行的命令
   esac  
View Code

4.for循环结构

   for 变量名 in 值1 值2  值3 值N...
   do
       执行的命令
   done 
View Code

5.while循环结构

1.while循环结构(不指定循环固定次数)
   while 条件判断 
   do
       执行的命令
   done 
2.while循环结构(指定循环固定次数)
   #!/bin/bash
   x=1
   while [ $x -le 5 ]
   do
           echo $x
           let x++
           sleep 0.1       
   done   
View Code

 

标签:Code,变量,RHCE,echo,判断,执行,View
来源: https://www.cnblogs.com/xingyi123/p/16517000.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有