所见即所为
脚本语言
Bash 变量
什么是变量:
- 变量是计算机内存的单元, 其中存放的值可以改变
- 将数据段赋给一个简短, 易于记忆的名字
变量命名规则:
- 字母下划线开头, 字母数字下划线组成
- 长度不超过255个字符
- 在有效范围内必须是唯一的
- 在Bash中, 变量的默认类型都是字符串型
名字要有含义
变量按存储数据类型分类
- 字符串行
- 整形
- 浮点型
- 日期型
变量的分类:
- 用户自定义变量
- 环境变量:保存的是和操作系统环境相关的数据
- 位置参数变量:向脚本中传递参数或数据
- 预定义变量
定义变量:
1x-5 不能加空格2name="jiecao"
变量调用:
1echo $变量名2echo $x3echo $name
在shell 中所有变量默认为字符串
变量叠加
1x=1232x="$x"4563x=${x}456
变量查看
set
选项:
-u:检测变量是否声明后调用,否则报错
变量删除:
unset 变量名
环境变量是全局变量
用户自定义变量是局部变量
pstree 进程树
设置环境变量
export 变量名 = 变量值
查看环境变量
- set
- env
删除unset
常用环境变量:
- HOSTNAME:主机名
- SHELL:当前的shell
- TERM:终端环境
- HISTSIZE:历史命令行条数
- SSH_CLIENT:当前操作环境是用ssh连接,这里记录客户端ip
- SSH_TTY:ssh连接的终端时pts/1
- USER:当前登录的用户
PATH环境变量:
PATH变量:胸痛查找命令的路径
echo $PATH
#查看PATH环境变量
PATH:“$PATH”:/root/sh
#增加PATH变量的值
PS1环境变量(操作符) 命令提示符
1echo $PS12cd /usr/local/su/3PS1='[\u@\A] \w]\$'4
5ls
当前语系查询
locale
#查询当前系统语系
- -LANG:定义主语系
- -LC_ALL:定义整体语系
1echo $LANG2echo $LC_ALL3
4locale -a | more5
6# 查询系统默认语系(下次开机后的系统语言)7cat /etc/sysconfig/i18n
Linux 中文支持
前提条件:正确安装的中文字体和中文语系
纯字符界面中需要第三方插件(zhcon等)
位置参数变量
$n, n为数字, $0为本身, $1-$9为第一到第九个参数, 10以上需要用${10}
1#!/bin/bash2num1=$13num2=$24sum=$(($num1+$num2))5echo $sum
chmod 755 文件名
$*
把所有参数看成一个整体
$@
同上, 不过$@把每个参数区分对待
$#
所有参数的个数
结果:
1$* can shu shi 11 22 33 442$@ can shu shi 11 22 33 443$# can shu ge shu 44
5for i in 1 2 3 46do7echo $i8done
例:$*与$@ 的区别
1#!/bin/bash2for i in "$*"3do4echo "The parameters is : $i"5done6
7for y in "$@"8do9echo "Parameter is : $y"10done
预定义变量
- $?, 最后一次执行命令的返回状态
- $$, 当前的进程号(PID)
- $!,后台最后一个程序运行的进程号(PID)
1echo $$2ps aux | grep ip113
4find / -name hello.sh5find / -name hello.sh & # (放入后台)
接收键盘输入:
read [选项] [变量名]
选项:
- -p:“提示信息”:在等待read输入时, 输出提示信息,
- -t 秒数, read 命令会一直等待用户输入, 使用此选项可以指定等待时间
- -n 字符数:read命令只接受指定的字符数,就会执行
- -s:隐藏输入的数据,适用于机密信息的输入
echo -e “\n”