shell编程是为了简化管理操作。 1、base变量与变量分类 base是Linux的标准shell。 base变量set:查询系统下所有环境变量env: 查看系统下环境变量unset:删除变量a.什么是变量与变量分类 变量由字母和下划线开头,由字母下划线数字组成。 变量名的长度不超过255个字符。 变量名在有效范围内必须是唯一的。 在base中,变量的默认类型都是字符串型。 变量按照存储数据类型分类:字符串型、整型、浮点型、日期型。 变量的分类: 用户自定义变量,变量自定义的; 环境变量,保存的是和系统操作环境相关的数据;但是对系统生效的环境变量名和变量作用是固定的; 位置参数变量,主要用来向脚本中传递参数和数据,变量名不能自定义,变量作用是固定的; 与定义变量,是base中已经定义好的变量;变量名不能自定义,变量作用也是固定的;b.用户自定义变量 定义变量:变量名=变量值(等号两侧没有空格) 变量调用:echo $变量名 变量默认字符串类型 变量叠加:x="$x"456或者x=${x}456 set:查询系统下所有环境变量 unset:删除变量c.环境变量 环境变量是全局变量,用户自定义变量只在当前shell生效 对系统生效的环境变量名和变量作用是固定的 设定环境变量: export 变量名=变量值 或者 变量名=变量值 export 变量名 env: 查看系统下环境变量 常用环境变量: BASE/SHELL/HOSTNAME/HOSTSIZE/SSH_CLIENT/USER/PATH/HOME/LANG等 建议环境变量大写 PATH:系统搜索命令路径目录,PATH="$PATH":/usr/local/apache 想要永久生效,需要把内容写入文件里面 PS1环境变量: \u,\A,\h,\W,\w,\s, 语系变量: 当前语系查询:locale LANG:定义系统主语系的变量 LC_ALL:定义整体语系的变量 cat /etc/sysconfig/i18n 系统默认语系d.位置参数变量 $n,n为数字,1-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./num.sh 11 22 $*,这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体 $@,这个变量也代表命令行中所有的参数,不过$@吧每个参数区分对待 $#,这个变量代表命令行中所有参数的个数 e.预定义变量 $?,最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值非0,则证明上一个命令执行不正确。 $$,当前进程的进程号 $!,后台运行的最后一个进程的进程号 接受键盘输入read [选项][变量名]-p "提示信息":在等待read输入时,输出提示信息-t 秒数:read命令会等待用户输入,这里指定等待时间-n 字符数:read命令只接受指定的字符数,就会执行-s:隐藏输入的数据,使用于机密信息的输入 vim read.sh#! /bin/bash read "please input your name:" -t 30 nameecho $name read "please input your pass:" -t 30 -s passecho pass
时间: 2024-11-06 07:36:25