• linux Shell学习笔记第二天


    今天做笔记稍微整理了下,但是避免不了出现错误,如果有错误麻烦大家给提出,本文最后将会共享今天的三个脚本文件。
    -
    变量


    获取本机主机名

    #hostname


    获取本系统版本号

    #uname -r


    获取cpu类型

    获取cpu的工作频率

    cat /proc/cpuinfo


    获取内存使用情况

    #free -m


    获取硬盘使用情况

    #df


    变量类型及变量操作


    本地变量(一般所指)

    本地变量只存在用户当前shell中,当用户退出当前shell或开器一个新的shell,所设置的变量将会不存在


    设置变量


    #变量名=变量值


    显示变量


    #echo ${变量名}


    假设a=1 显示则 echo ${a}


    环境变量(用的非常少)

    环境变量用于所有用户进程(经常称为子进程)。登录进程称为父进程。Shell中执行的用户进程均称为子进程。不像本地变量,环境变量可用于所有子进程,这包括编辑器、脚本和应用


    环境变量在用户注销时会消失,因此最好在$HOME/.bash_profile(/etc/profile)文件里直接定义


    位置变量(跟脚本和函数有很大的关系)

    位置变量表示$0,$1… …$9 (只有9个)


    $0
     $1
     $2
     $3
     $4
     $5
     $6
     $7
     $8
     $9
     
    脚本名字
     A
     B
     C
     D
     E
     F
     G
     H
     I
     

    $0=当前脚本名称


    向脚本中使用位置参数


    向系统命令传递参数


    特殊变量

    $# 传递到脚本的参数列表个数


    $* ($@) 以一个单字符串显示所有向脚本传递的参数


    $$ 脚本运行的当前进程ID号


    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。


    引用的必要性


    变量操作中,脚本执行变量赋值时最容易犯的一个错误就是引用错误


    例:echo abc *


    echo abc ‘*'


    echo Hit the star button to exit *


    引用的方式


    双引号(“) (需要排除以下几个)


    使用双引号可以引用除$、`、\、字符外的任意字符或字符串


    单引号(‘) (比较霸道,任何都可以转成字符)


    与双引号类似,不同的是shell会忽略任何引用值。


    换句话说,如果屏蔽了其特殊含义,会将引号里的所有字符,都作为一个字符串。


    反引号(`) (将括号内的当作命令来执行)


    用于设置系统命令的输出到变量。


    shell将反引号中的内容作为一个系统命令,并执行其内容


    反斜杠(\)


    如果一个字符有特殊含义,反斜线防止shell误解其含义,即屏蔽其特殊含义。


    下述字符包含有特殊意义:& * + ^ $ ` ” | ?


    脚本实例


    Hello.sh

    #!/bin/bash


    #This is the first script


    echo “Hello,World!”


    执行:


    chmod u+x Hello.sh


    ./Hello.sh


    var.sh

    #!/bin/bash


    echo $1


    echo $2


    echo $3


    echo $4


    echo $5


    echo $6


    echo $7


    echo $8


    echo $9


    echo $10

    #!/bin/bash

    echo –e “hostname\t `hostname`”


    echo –e “OScore\t `uname -r`”


    echo –e “CPUInfo\t `grep “model name” /proc/cpuinfo|awk –F: ‘{print $2}'`”


    ehco –e “CPUMHz\t `grep “MHz” /proc/cpuinfo | awk –F: ‘{print $2}'`”


    echo –e “MEMTotal\t `free | awk ‘$1=”Mem:”{print $2}'`”


    echo –e “DiskInfo\t `df | grep dev |awk ‘{print $1 $2}'`”

    回顾:


    脚本的结构与运行


    变量的类型及用法


    环境变量


    本地变量


    参数变量


    特殊变量


    变量赋值时的引用方法

  • 相关阅读:
    《神经网络的梯度推导与代码验证》之vanilla RNN的前向传播和反向梯度推导
    《神经网络的梯度推导与代码验证》之CNN(卷积神经网络)前向和反向传播过程的代码验证
    《神经网络的梯度推导与代码验证》之CNN(卷积神经网络)的前向传播和反向梯度推导
    《神经网络的梯度推导与代码验证》之FNN(DNN)前向和反向传播过程的代码验证
    《神经网络的梯度推导与代码验证》之FNN(DNN)的前向传播和反向梯度推导
    《神经网络的梯度推导与代码验证》之数学基础篇:矩阵微分与求导
    《神经网络的梯度推导与代码验证》系列介绍
    手把手撸套框架-关于2.0的一些畅想
    手把手撸套框架-Victory.Core工具集
    手把手撸套框架-Victory框架1.1 详解
  • 原文地址:https://www.cnblogs.com/kscnchina/p/2825614.html
Copyright © 2020-2023  润新知