Day09_Shell基本语法及流程控制

一.shell的基本语法—变量

  1. 命名规则

    1. 以字母开头
    2. 使用中划线或者下划线做单词的连接
    3. 同类型的用数字区分
    4. 对于文件最好加上拓展名
  2. 系统变量
    • set 和 env区别
    • set:显示所有变量
    • env:系统变量即环境变量
  3. 变量赋值
    • unset VARNAME:删除变量
  4. 常用系统变量
    • PATH
    • PWD
    • LANG
    • HOME
    • HISTSIZE:历史日志行数
    • PS1:存放用户信息
    • IFS
    • export:定义全局变量
  5. 定义变量名的边界
    [[email protected] ~]# rest_mem=20
    [[email protected] ~]# echo ${rest_mem}%
    20%
  6. 数据类型

二. shell的基本语法—运算符

  1. 算术运算符

    • +
    • -
    • *
    • /
    • %
  2. 关系操作
    • <
    • >
    • <=
    • >=
    • ==
    • !=
    • &&
    • ||
      • 以上与(())连用
    • test命令相关,[]可以达到一样的效果
  3. 赋值运算符
    • =
    • +=
    • *=
    • /=
    • %=
    • [[email protected] ~]# ((x%=3))
      [[email protected] ~]# echo $x
  4. shell里的所有计算器
    • $[]
    • (())
    • $(())
    • expr
    • 浮点运算bc软件
      • yum install bc -y
      • echo ‘scale=2;1/3‘|bc -l(保留两位,1除以3运算)
  5. 测试操作
    1. 命令执行后会返回到一个系统变量中 $?
      如果$?值为0 表示命令执行成功 否则为失败
    2. 测试命令 test [ ] [[ ]] (( ))
      1. 测试文件状态

        • -d 目录
        • -e
        • -h 链接文件
        • -s 文件长度 > 0、非空
        • -f 普通文件
        • -w 可写
        • -r 可读
        • -x 可执行
        • -L 符号连接
        • -u 文件有 suid 位设置
        • -b block文件
      2. 字符串测试
        • = 两个字符串相等
        • != 两个字符串不相等
        • -z 空串
        • -n 非空串
      3. 测试数值
        • -eq 等于
        • -ne 不等于
        • -gt 大于
        • -lt 小于
        • -ge 大于等于
        • -le 小于等于
      4. 拓展测试符号

三. 流程控制

  1. 流程控制之if语句

    #!/bin/bash
    var='/etc/init.d'
    #var='/dev/sda'
    if [ -d $var ]
        then
            echo "$var is directory"
    elif [ -b $var ]
        then
            echo "$var is block"
    elif [ -f $var ]
        then
            echo "$var is regular file"
    else
            echo 'unknow'
    fi
  • 向脚本传递参数

    #test.sh
    echo $0
    echo $1
    echo $2
    echo $3
    echo ${11}
    echo '$$' $$
    echo '$*' $*
    echo '[email protected]' [email protected]
    echo '$#' $#
    echo '$?' $?
    
    '''
    测试:python test.sh 1 2 3 4 5 6 7 8 9 10 11
    输出结果:
    ./test.sh
    2
    11
    $$ 14312
    $* 1 2 3 4 5 6 7 8 9 10 11
    [email protected] 1 2 3 4 5 6 7 8 9 10 11
    $# 11
    $? 0
    * $0 为运行的文件名
    * $$ 为进程pid
    * $* 为输入的所有的参数
    * [email protected] 同$*
    * $# 输入参数个数
    * $? 上一条命令是否执行成功
    '''
  • 修改脚本,使其能接收调用者传来的参数
    [[email protected]-R3-srv ~]# cat test_file.sh
    #!/bin/bash
    if [ -d $1 ]
        then
            echo "$1 is directory"
    elif [ -b $1 ]
        then
            echo "$1 is block"
    elif [ -f $1 ]
        then
            echo "$1 is regular file"
    else
            echo 'unknown'
    fi
    [[email protected]-R3-srv ~]# ./test_file.sh /etc/passwd
    /etc/passwd is regular file
  • 检测nginx是否启动,如果没启动,将其启动
    #! /bin/bash
    ps aux|grep nginx|grep -v grep
    if [ $? -eq 1 ]
        then
            systemctl start nginx
    fi
时间: 2024-09-30 05:20:16

Day09_Shell基本语法及流程控制的相关文章

Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1.html  演示点击按钮,弹出提示框 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <

python语法之流程控制(if while for)

一.python语法之流程控制 1.1什么是流程控制? 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(判断).循环结构(while for) 二.分支结构 2.1 什么是分支结构? 分支结构就是根据条件判断的真假去执行不同分支对应的子代码 2.2 为什么要用分支结构? 为了让计算机可以有像人一样的逻辑判断能力去做事 2.3 怎么使用分支结构? 引入if语句 定义:主要是用于判断事物的对错 真假 是否可行 语法结构

黑马程序员——Java基础语法(二)---流程控制

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 本文主要介绍java基础语法中的流程控制,流程控制是我们写出灵活代码的基础.常见的流程控制主要有四类:判断结构.选择结构.循环结构.其他控制结构 一.判断结构 判断结构的标志是if语句,if语句主要有三种表现形式: 1.if(条件表达式) { 执行语句 } 注意: 1.如果if语句中只有一条语句,那么可以不写大括号.不过初学者一定要写括号,以免出错. 2.如果if语句没写大括号,if就只能控制

Java基本语法--程序流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块.流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构.分支结构.循环结构.本篇博客主要是对Java基本语法中的程序流程控制进行详细讲解. 目录: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转 分支结构 根据条件,选择性地执行某段代码 if-else分支语句 switch-case分支语句 循环结构 根据循环条件,重复性的执行某段代码 for循环语句 while循环语句 do.

Java基础第四天总结——Java基础语法——程序流程控制

目录: 一.程序流程控制 二.顺序结构 三.分支语句1:if-else结构 四.分支语句2:switch-case结构 五.循环结构 六.循环结构1:for循环 /*--------------------------黄金分割线----------------------------------*/ 一.程序流程控制 > 顺序结构 ● 自上逐行向下执行 >分支结构 ● 根据条件,选择性执行某段代码 ● 有if-else和switch-case两种分支语句 >循环结构 ● 根据循环条件,重

【IOS 开发】Object - C 语法 之 流程控制

1. if 条件语句 if 表达式 : 表达式是一个 整型 或者 布尔型, 0 或者 FALSE 为 FALSE, 大于 0 为 TRUE; 代码示例 : /************************************************************************* > File Name: 11-ifelse.m > Author: octopus > Mail: octopus_truth.163.com > Created Time: 二

python学习笔记一 介绍、基本语法、流程控制

1.用户输入 #!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name ) 2.输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即: #!/usr/bin/

Python基础1 基本语法、流程控制

1. 第一个python程序:  print("Hello World!")          //打印Hello World!  运行结果:  Hello World! 2. 变量 变量,就是用来存东西的,以便后面调用. 变量的定义规则: 变量只能是字母,数字,下划线的任意组合 变量的第一个字符不能是数字 变量名不能使关键字  name = "zhang"                   //把zhang赋给name  name2 = name        

day1 python 介绍、基本语法、流程控制

请查看我的云笔记链接: http://note.youdao.com/noteshare?id=0ea7425d3e3669800cb0d73f7ec8865d&sub=D87B4BF820C74C2AB76F321091E02235