• shell基础


    一个简单地shell脚本

    编写1.sh

    #!/bin/bash
    echo "hellO"
    cd /
    ls ./

    执行使用/bin/bash

    或者之间使用bash此时bash已经在系统变量当中

    或者修改 脚本的权限直接执行因为此时在文件当中已经注明需要使用哪一个 解释器执行

    变量:

    自定义变量

    #!/bin/bash
    name=webcyh
    age=21
    echo $name 的年龄为 $age 

    系统变量

    echo 系统变量为当前用户名 $USER 家目录为 $HOME

    命令返回的变量 

    注意使用``和不使用的区别使用的是命令表达式 并且等于号不能存在空格

    v=`date`
    v1=date
    v2=`ls /`
    
    echo $v
    echo $v1
    
    
    
    
    echo $v2

    表达式命令

    • 算数运算符
    • 关系运算符
    • 布尔运算符
    • 字符串运算符
    • 文件测试运算符

    条件控制

    #!/bin/bash
    if mkdir test
    then 
    echo 创建目录成功
    else
    echo 创建失败
    fi

    添加文件判断 【 速度 】注意这个中括号存在左右空格 参数 -d 是否为目录 -f 是否为文件 -w是否可读 -x是否可执行 -r是否可查看 -e是否存在

    #!/bin/bash
    if [ -d ./test ]
    then
    echo 这个目录已经存在
    elif mkdir test
    then
    echo 创建目录成功
    else
    echo 创建失败
    fi

    数值判断 和数学表达式

    -eq 相等

    -ne不相等

    -gt大于

    -ge 大于且等于

    -lt小于

    -le小于等于

    -a 相当于且

    -o 或者

    a=3
    b=4
    if [ $a -gt $b ]
    then
    echo 大
    else
    echo 小
    fi
    
    
    c=$[ $a+$b ]
    echo $c

     字符串判断 逻辑符号之间有空格 参数 -z判断是否为长度为0 如果是则返回true [ -z $a ] [ $a ] 判断是否为空串

    if [ $USER = root ]
    then
    echo 请切换到普通用户
    else
    echo 欢迎$USER
    fi

    逻辑表达式

    if [[ $a -eq $c && $a -lt $b ]]
    then
    echo zhen
    else
    echo hehe
    fi

    for循环控制

    编写一个shell判断某目录下的文件是文件还是目录

    #!/bin/bash
    
    base=/
    for va in ` ls $base `
    do
      if [ -f $va ]
      then
       echo 这是一个文件$va// rm -rf $base/$va
      else
       echo 这不是文件$va
     fi
    done

     c语言风格的循环

    #!/bin/bash
    sum=0
    for((i=0;$i<=100;i++))
    do
    #!/bin/bash
    sum=0
    for((i=0;$i<=100;i++))
    do
    sum=$[ $sum + $i ]
    
    done
    
    
    echo $sum

    php 文件传递参数

    shell传递参数

    #!/bin/bash
    sum=0
    a=$1
    for((i=0;$i<=$a;i++))
    do
    sum=$[ $sum + $i ]
    
    done
    
    
    echo $sum

     

     test表达式

    type test查看文件类型

    help test查看帮助文档

    为真则状态为0 为假状态为非0

    [root@VM_0_11_centos ~]# test 1 -eq 2
    [root@VM_0_11_centos ~]# echo $?
    1
    [root@VM_0_11_centos ~]# 
  • 相关阅读:
    Qt串口的使用记录
    CImage灰度化
    (记录)MSYS2+MINGW32编译ffmpeg过程
    Blas 基本函数功能
    blas中dgemm_的用法
    选择、插入、冒泡排序
    简单的页面
    中国大学排名
    爬bing 主页
    读书报告
  • 原文地址:https://www.cnblogs.com/webcyh/p/11414868.html
Copyright © 2020-2023  润新知