Linux_10------Linux之shell编程------变量


shell编程是为了简化管理操作

1base变量与变量分类
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 name
echo $name

read "please input your pass:" -t 30 -s pass
echo pass
原文地址:https://www.cnblogs.com/eis13/p/5885318.html