shell编程之变量

一、用户自定义变量

name=poku//两边不能有空格
echo $name //输出变量

//变量叠加两种方式
name="$name"+hello
echo $name//pokuhello

name=${name}+hello
echo $name//pokuhello

set 命令
//查看所有生成的变量,包括系统变量
set -u //查看 当变量是否为空·
echo $a //如果$a 为空变量,那就报出空变量信息
unset + 名字(不加$)//删除变量

二、环境变量
环境变量是全局变量:在当前Shell和这个Shell的所有子Shell中生效
用户自定义变量是局部变量:只在当前的Shell中生效
pstree 查看进程树

对系统生效的环境变量名和变量作用是固定的
设置环境变量
export 变量名=变量值
或 变量名=变量值
export 变量名
set查看所有变量 unset 变量名 删除变量
env查看环境变量

PATH 系统搜索命令路径
PS1 定义当前操作系统的提示符
PS2 等待输入提示符

常用环境变量

  • HOSTNAME:主机名
  • SHELL:当前的shell
  • TERM:终端环境
  • HISTSIZE:历时命令条数
  • SSH_CLIENT:当前操作环境是用ssh连接的,这里记录客户端ip
  • SSH_TTY:ssh连接的终端时pts/1
  • USER:当前登录的用

环境变量中的bash语系变量

locale #查询当前系统语系
#演示:
[root@localhost ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
[root@localhost ~]#
----------

#或者直接查看LANG变量,查看系统主语系
#演示:
[root@localhost ~]# echo $LANG
zh_CN.UTF-8
[root@localhost ~]# 

LANG #定义系统主语系的变量
LC_ALL #定义整体语系的变量
----------

locale -a | more #查看Linux支持的所有语系
#演示:
[root@localhost ~]# locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ER.utf8
[root@localhost ~]#
----------

cat /etc/sysconfig/i18n  #查看默认语系 下次开机后进入的环境
#演示:
[root@localhost ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@localhost ~]# 

三、位置参数变量


# $n  n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参#数需要用大括号包含,如${10}
# $* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
# $@  这个变量也代表命令行中所有参数,不过$@把每个参数区分对待
# $#  这个变量代表命令行所有参数的个数

[root@localhost ~]# ls          #列出目录下的文件
abc              bols    install.log         japan     test3.sh  tmp anaconda-ks.cfg  cangls  install.log.syslog  test2.sh  test.sh
[root@localhost ~]# mkdir sh    #创建sh目录
[root@localhost ~]# ls
abc              cangls              japan     test3.sh
anaconda-ks.cfg  install.log         sh        test.sh
bols             install.log.syslog  test2.sh  tmp
[root@localhost ~]# cd sh/      #切换到sh工作目录
[root@localhost sh]# ls
[root@localhost sh]# touch canshu1.sh  #创建一个空文件canshu1.sh
[root@localhost sh]# ls
canshu1.sh
[root@localhost sh]# vim canshu1.sh    #用vim编辑器打开canshu1.sh文件

#进入canshu1.sh文件
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo sum
~                                                                    
~                                                                    
~                                                                    
~  
#结束文件编辑

[root@localhost sh]# chmod 755 canshu1.sh    #赋予文件可执行权限
[root@localhost sh]# ./canshu1.sh 6 7        #执行文件 并传递两个参数 6 7 $1表示第一个参数 $2表示第二个参数 $0 表示./canshu1.sh
13                                           #执行结果
[root@localhost sh]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值