linux Shell学习笔记第二天

变量

  1. 获取本机主机名

    #hostname

  2. 获取本系统版本号

    #uname -r

  3. 获取cpu类型

  4. 获取cpu的工作频率

    cat /proc/cpuinfo

  5. 获取内存使用情况

    #free -m

  6. 获取硬盘使用情况

    #df

变量类型及变量操作

  1. 本地变量(一般所指)

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

    设置变量

    #变量名=变量值

    显示变量

    #echo ${变量名}

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

  2. 环境变量(用的非常少)

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

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

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

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
























    $0

    $1

    $2

    $3

    $4

    $5

    $6

    $7

    $8

    $9

    脚本名字

    A

    B

    C

    D

    E

    F

    G

    H

    I

    $0=当前脚本名称

    向脚本中使用位置参数

    向系统命令传递参数

  4. 特殊变量

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

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

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

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


引用的必要性


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

例:echo abc *

echo abc ‘*'

echo Hit the star button to exit *

引用的方式

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

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

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

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

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

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

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

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

反斜杠(\)

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

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

脚本实例

  1. Hello.sh

    #!/bin/bash

    #This is the first script

    echo “Hello,World!”

    执行:

    chmod u+x Hello.sh

    ./Hello.sh

  2. var.sh

    #!/bin/bash

    echo $1

    echo $2

    echo $3

    echo $4

    echo $5

    echo $6

    echo $7

    echo $8

    echo $9

    echo $10

  3. #!/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}'`”

    回顾:

    脚本的结构与运行

    变量的类型及用法

    环境变量

    本地变量

    参数变量

    特殊变量

变量赋值时的引用方法

(0)

相关推荐

  • linux Shell学习笔记第五天

    第五天:函数与任务调度 函数的优势 分而治之f 协同合作 方便管理 维护简单 函数的结构 function 函数名() { 命令1 命令2 命令3 } 函数的参数传递 向函数传递参数就像在一般脚本中使用特殊变量$1,$2,$3-$9一样,函数取得所传参数后将原始参数传回shell脚本,因此最好先在函数内重新设置变量保存所传的参数.这样如果函数有一点错误,就可以通过已经本地化的变量名迅速加以跟踪. 函数文件 当你手机一些经常使用的函数时,可以将之放入函数文件中并将文件载入shell. 文件头应包含

  • linux Shell学习笔记第一天

    以下是Shell学习1-2天学习笔记 ---------我是分隔符--------- 硬件去执行, 内核与硬件之间进行操作. 命令解析器. shell脚本的组成元素 系统命令 文本处理工具(sort.grep.sed.awk-) 变量 条件判断 环循结构 函数 Shell Scripts Center(SSC) ---------------------------- 非负Grep / awk 几天. 统计Wc Sort 排序 sort|head / sed字段处理 awk 数据区域判断 awk

  • linux Shell学习笔记第四天

    本节课的脚本也同样共享在share中了. 第四天:循环结构 内容大纲: 应用实例分析 for循环 while循环 for循环的原理 达到效果 根据昨天的菜单修改. 选择1.2.3后还会提示是否继续选择的功能.选择4仍然是退出操作. for variable in list list 变量列表池 do command1 command2 done 实例一 forlist.sh #!/bin/bash #for with list for loop in 1 2 3 4 5 定义loop的变量 1

  • linux Shell学习笔记最后一节,温故与知新

    脚本编写技巧 脚本文件名命名规则 文件名的字符包括 字母.数字."."."_"和"-", 注意:脚本的文件名命名不能以数字开头. 脚本文件名的命名,尽量使用英文单词.词组或短句的缩写. 脚本版本管理: 脚本作用.主版本号.修改次数.shell类型 变量命名规范 变量名可以由数字和字母组成 变量名采用全部英文字符小写的方式 变量名称尽量使用缩写,最好不要超过6个字符 ${变量名} 例:${port},${ipaddr}- 脚本代码注释规范 脚本代码

  • linux Shell学习笔记第三天

    第三天:条件选择 大 纲 应用实例分析 条件测试 if-else-fi case-in-esac 实现功能菜单: 执行脚本后 按1,显示当前时间 按2,显示CPU负载 按3,显示剩余内存 按0,退出脚本 按其他字符,提示超出选择范围后退出 分析步骤. #date +%T uptime awk截取 free –m 条件测试格式 #test –option obj #[ -option obj ] 返回结果 表达式内容测试结果是真的 表达式内容测试结果是假的 测试的对象分类 执行结果(执行成功或失败

  • linux Shell学习笔记第二天

    变量 获取本机主机名 #hostname 获取本系统版本号 #uname -r 获取cpu类型 获取cpu的工作频率 cat /proc/cpuinfo 获取内存使用情况 #free -m 获取硬盘使用情况 #df 变量类型及变量操作 本地变量(一般所指) 本地变量只存在用户当前shell中,当用户退出当前shell或开器一个新的shell,所设置的变量将会不存在 设置变量 #变量名=变量值 显示变量 #echo ${变量名} 假设a=1 显示则 echo ${a} 环境变量(用的非常少) 环境

  • 前端主流框架vue学习笔记第二篇

    接上篇,在本篇中,我们将要实现如下,功能,编辑和查询,我们当前的todolist程序,和线上其它的demo程序不同,我们会对其进行增删改查的基本操作,之后进行进一步的完善,按照常规的系统使用经验,一般我们新增和编辑都是在模态框中处理,这里我们不会去构建复杂的模态框,只用一个简单的div层来代替,后期接下来的文章中我们会重复造轮子,构建我们自己的轻量级框架(UI库). 首先,我们对我们的页面结构进行一下简单的调整,加入bootstrap只是为了让页面不那么赤裸裸,对其它不会有任何影响 <!DOCT

  • Python基础教程学习笔记 第二章 列表和元组

    1.序列中元素的索引: 第一个元素索引是0,第二个是1,依次递增 最后一个元素索引是-1,倒数第二个是-2,依次递减 2.序列(Sequence)的种类: 列表(list).元组(tuple).字符串(string).Unicode 字符串.buffer对象.xrange对象 3.列表和元组的区别:列表可以进行修改,但是元组不行 4.tuple常作为字典的键 5.序列都可以进行以下操作: 索引(indexing).分片(sliceing).加(adding).乘(multiplying).以及检

  • linux NFS 学习笔记

    NFS,是Network File System的简写,即网络文件系统.网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS基于 RPC协议,NFS本身只是起到共享的作用而和客户端进行连接和数据传输则是RPC协议的功能 NFS主要通过两个daemon 来进行控制: 1.rpc.nfsd  ------- 它用来控制客户端是否可以连接到,NFS serve

  • Linux shell脚本基础学习详细介绍(完整版)第1/2页

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Linux 脚本编写基础 ◆1.1 语法基本介绍1.1.1 开头程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:编译

随机推荐