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}'`”

 

 

回顾:


脚本的结构与运行


变量的类型及用法


环境变量


本地变量


参数变量


特殊变量


变量赋值时的引用方法

posted on 2012-12-19 22:27  周德顺  阅读(206)  评论(0编辑  收藏  举报