zoukankan      html  css  js  c++  java
  • 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 ~]# 
  • 相关阅读:
    【数位dp】Beautiful Numbers @2018acm上海大都会赛J
    【状压dp】Trie 树 @中山纪念中学20170304
    两个给点染色的问题-树上染色与图上染色
    【贪心】经营与开发 @upc_exam_5500
    【二分+拓扑排序】Milking Order @USACO 2018 US Open Contest, Gold/upc_exam_6348
    【并查集】Connectivity @ABC049&amp;ARC065/upcexam6492
    【倍增】T-shirt @2018acm徐州邀请赛 I
    Sparse Coding: Autoencoder Interpretation
    Sparse Coding
    Pooling
  • 原文地址:https://www.cnblogs.com/webcyh/p/11414868.html
Copyright © 2011-2022 走看看