shell入门----变量学习

变量的类型

  • 变量

    • bash作为程序设计语言和其它高级语言一样也提供使用和定义变量的功能
  • 预定义变量、环境变量、自定义变量、位置变量

预定义变量
$? 最后一次执行的命令的返回状态。如果这个变量的值为 0,则证明上一条命令正确执行;如果这个变量的值为非 0 ,则 证明上一条命令执行错误
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)

[root@newrain sh]# ls
count.sh hello.sh parameter2.sh parameter.sh  #ls命令正确执行
[root@newrain sh]# echo $?
0
#预定义变量"$?"的值是0,证明上一条命令正确执

[root@newrain sh]# vi variable.sh 
#!/bin/bash
echo "The current process is $$" 
#输出当前进程的PID 
#这个PID就是variable.sh脚本执行时生成的进程的PID

[root@newrain sh]#sleep 3000 & 
[1] 12165 
#符号"&"的意思是把命令放入后台执行 
[root@newrain sh]#echo $!
12165
自定义变量
		定义:变量名称=值
				变量名称:只能由字母,数字,下划线组成,不能以数字开头;
				注意:应该让变量名称有意义;
				= 赋值符号 前后不能有空格 ;
				值: 所有的字符串和数字都可以;
				引用变量: $变量名 或 ${变量名}。
		示例:
    		[root@newrain ~]# a=100
				[root@newrain ~]# echo $a
				100
				[root@newrain ~]# echo $aa
                                # 这里输出为空,因为解释器认为$aa是变量
				[root@newrain ~]# echo ${a}a
				100a

				查看变量: echo $变量名 set(所有变量:包括自定义变量和环境变量)
				取消变量: unset 变量名 仅在当前shell中有效
				作用范围: 仅在当前shell中生效
环境变量
		shell在开始执行时已经定义好的 
		env 查看所有环境变量
		set 查看所有变量 
				环境变量拥有可继承性:export之后就拥有继承性
		export 导出变量(作用范围) 
临时生效
    [root@newrain ~]# IPADDR=192.168.1.1
		[root@newrain ~]# echo $IPADDR
		192.168.1.1
永久生效
		写到4个登陆脚本中 ~/.bashrc ~/profile 更好放在/etc/profile.d/* 下建立独立的环境变量配置文件
		常用环境变量:USER UID HOME HOSTNAME PWD PS1 PATH
PATH:存储所有命令所在的路径
练习1
编写一个shell脚本,用于搜集其执行主机的信息,打印结果如下: 
    [root@tiger tmp]# ./test.sh
    2012年 05月 24日 星期四 17:07:45 CST
    当前的用户为 root
    当前用户的宿主目录为 /root 用户的标识为 0
    主机名称为 newrain
    网卡的IP地址为 192.168.1.106
##脚本源码如下
#!/usr/bin/bash
# 获取主机基本信息
time=`date +%y年%m月%d日-%H:%M`
ip=`ifconfig eth0|grep inet|awk '{print $2}'` echo "现在的时间是:" $time
echo "当前的用户是:" $USER
echo "当前的用户标识:" $UID
echo "当前的主机名称是:" $HOSTNAME
echo "当前可用网卡IP是:" $ip
取根分区剩余空间:
		# df -h /dev/sda2 |awk 'NR==2{print $4}' 371G
取当前系统剩余内存:
		# echo "现在的剩余内存是:"`free -m |awk 'NR==2{print $4}'`
		现在的剩余内存是:12813M
取当前cpu平均负载:
		# echo 现在cpu的`uptime |cut -d, -f3-` //-d指定分隔符,-f指定显示区域,3-第三列以后(包括第三列)
		现在cpu的 load average: 0.07, 0.12, 0.11
		# echo 现在cpu的`uptime |awk -F"," '{print $4,$5,$6}'`
		现在cpu的 load average: 0.00 0.04 0.10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值