Shell编程 之 变量
1. 概述
Shell与其他语言的对比:php和java主要实现功能,Shell简化管理操作
2. Bash变量与变量分类(Bash是Linux的Shell)
2.1 什么是变量与变量分类
2.1.1 变量是计算机内存的单元,其中存放的值可以改变
2.1.2 变量命名规则
- 开头只能字母或下划线,中间为字母、数字和下划线
- 长度不能超过255个字符
- 在有效的范围内必须是唯一的
- 在Bash中,变量的默认类型都是字符串
2.1.3 变量按照存储数据分类:字符串型,整型,浮点型,日期型
2.1.4 变量的分类:
- 用户自定义变量
- 环境变量
- 预定义变量(包括位置参数变量)
3. 用户自定义变量(是局部变量)
3.1 变量定义:变量名=变量值(等号左右不能有空格),例如:x=5 或 name="wayne"
3.2 变量调用:$变量名,例如:echo $x 或 echo $name
3.3 变量叠加:x="$x"456 # 在x后叠加456
3.4 变量查看:set查看所有变量 tips:set -u后查看变量为空还是变量不存在
3.5 变量删除:unset 变量名
4. 环境变量(是全局变量)
bash命令进入子shell,exit命令退出到父shell,pstree查看进程
对系统生效的环境变量名和变量作用是固定的
设置环境变量:export 变量名=变量值
查看环境变量:set # 查看所有变量 env # 查看环境变量
调用和删除:echo $变量名 和 unset 变量名
常用环境变量:
PATH环境变量:系统查找命令的路径
echo $PATH # 查看PATH环境变量
PATH="$PATH":/root/sh # 增加PATH变量的值 (临时添加)
PS1环境变量:命令提示符设置(默认为PS1='[\u@\h \W]\$ ')
5. 环境变量中的 语系变量
5.1 locale # 查询当前系统语系
- LANG:定义系统主语系的变量
- LC_ALL:定义整体语系的变量
5.2 语系变量LANG
- echo $LANG # 查看系统当前语系
- locale -a | more # 查看Linux支持的所有语系
5.3 查询系统默认语系
- cat /etc/sysconfig/i18n
5.4 Linux中文支持 - 纯字符界面不支持中文显示
6. 位置参数变量
6.1 $n 向脚本中传递需要脚本运算的值
[root@localhost sh]# ./para.sh 1 2
#!/bin/bash sum1=$((10+20)) echo $sum1 num1=$1 num2=$2 sum2=$(($num1+$num2)) echo $sum2 ~ ~ ~ "para.sh" 11L, 92C
6.2 $* 和 $@ 和 $#
#!/bin/bash echo "\$* is: $*" echo "\$@ is: $@" echo "\$# is: $#" ~ ~ ~ "para2.sh" 7L, 69C
#!/bin/bash for x in "$*" do echo "\$* is: $x" done for y in "$@" do echo "\$@ is: $y" done ~ ~ ~ "para3.sh" 11L, 102C
7. 预定义变量
7.1 $? 上一条命令正确执行,则这个变量的值为0
7.2 $$ 和 $!
#!/bin/bash echo "\$$ is current PID: $$" # 当前进程ID号 find / -name hello.sh & # 最后的&符号表示在后台运行 echo "\$! is the last PID in background: $!" # 后台最后一个进程ID号 ~ ~ ~ "process.sh" 6L, 113C
8. 接收键盘输入 read 选项 变量名
#!/bin/bash read -p "input your name: " -t 30 name # 秒数 echo $name read -p "input your password: " -s password # 隐藏 echo echo $password read -p "input your gender: [M/F]" -n 1 sex # 字符数 echo echo $sex ~ ~ ~ "read.sh" 12L, 188C
posted on 2017-02-09 20:47 你的踏板车要滑向哪里 阅读(188) 评论(0) 编辑 收藏 举报