所见即所为
脚本语言
Bash 变量
什么是变量:
- 变量是计算机内存的单元, 其中存放的值可以改变
- 将数据段赋给一个简短, 易于记忆的名字
变量命名规则:
- 字母下划线开头, 字母数字下划线组成
- 长度不超过255个字符
- 在有效范围内必须是唯一的
- 在Bash中, 变量的默认类型都是字符串型
名字要有含义
变量按存储数据类型分类
- 字符串行
- 整形
- 浮点型
- 日期型
变量的分类:
- 用户自定义变量
- 环境变量
- 位置参数变量:向脚本中传递参数或数据
- 预定义变量
定义变量:
x-5 不能加空格name="jiecao"变量调用:
echo $变量名echo $xecho $name在shell 中所有变量默认为字符串
变量叠加
x=123x="$x"456x=${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环境变量(操作符) 命令提示符
echo $PS1cd /usr/local/su/PS1='[\u@\A] \w]\$'
ls当前语系查询
locale
#查询当前系统语系
- -LANG:定义主语系
- -LC_ALL:定义整体语系
echo $LANGecho $LC_ALL
locale -a | more
# 查询系统默认语系(下次开机后的系统语言)cat /etc/sysconfig/i18nLinux 中文支持
前提条件:正确安装的中文字体和中文语系
纯字符界面中需要第三方插件(zhcon等)
位置参数变量
$n, n为数字, $0为本身, $1-$9为第一到第九个参数, 10以上需要用${10}
#!/bin/bashnum1=$1num2=$2sum=$(($num1+$num2))echo $sumchmod 755 文件名
$*把所有参数看成一个整体
$@ 同上, 不过$@把每个参数区分对待
$#所有参数的个数
结果:
$* can shu shi 11 22 33 44$@ can shu shi 11 22 33 44$# can shu ge shu 4
for i in 1 2 3 4doecho $idone例:$*与$@ 的区别
#!/bin/bashfor i in "$*"doecho "The parameters is : $i"done
for y in "$@"doecho "Parameter is : $y"done预定义变量
- $?, 最后一次执行命令的返回状态
- $$, 当前的进程号(PID)
- $!,后台最后一个程序运行的进程号(PID)
echo $$ps aux | grep ip11
find / -name hello.shfind / -name hello.sh & # (放入后台)接收键盘输入:
read [选项] [变量名]
选项:
- -p:“提示信息”:在等待read输入时, 输出提示信息,
- -t 秒数, read 命令会一直等待用户输入, 使用此选项可以指定等待时间
- -n 字符数:read命令只接受指定的字符数,就会执行
- -s:隐藏输入的数据,适用于机密信息的输入
echo -e “\n”