shell编程

1、变量
变量名:字母数字下划线,不能数字卡头,长度不能超过255字符,有含义
类型:默认所有内容都是字符型
变量:
1、用户自定义类型
2、环境变量,主要保存的是和系统操作环境相关的数据
3、位置参数变量,主要用来向脚本当中传递参数和数据,变量名不能自定义,变量作用是固定的。
4、预定义变量
环境变量是全局变量,用户自定义变量是局部变量;
用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效;
用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的
用户自定义环境变量:
export 变量名=变量值
查看环境变量
set 查看所有变量
env 查看环境变量
unset 环境名
locale 查询默认语系
locale -a|more 查看所有语系 (zhcon正文插件)
位置参数变量:
$n 传递参数的位置顺序
#!/bin/bash            #!/bin/bash      
a=1 a=$1
b=2 b=$2
echo $$($a+$b)   echo $$($a+$b)  
执行:sh 1.sh 执行:sh 1.sh  1 2
$* 这个参数代表命令行中所有的参数(把所有参数整体看待)
$@ 这个参数代表命令行中所有的参数(把每个参数单独看待)
$# 传递参数的所有个数(计数)
echo "canshushi : $*"
echo "canshuyeshi : $@"
echo "canshugeshu : $#"
$*与$@区别
for i in 1 2 3 4 for i in "$@"
do do
    echo $i echo $i
done done
2、运算符
1)declare声明变量类型
declare [+/-] [选项] 变量名
- 给变量设定类型属性
+ 取消变量的类型属性
-a 数组型   
-i 整数型    declare -i a=1  echo $a
-x 环境变量
-r 只读变量
-p 显示指定变量的被声明的类型   declare -p
只需在最后结果变量声明变量类型,会将参与计算的其他变量也一起转变变量类型
movie[0]=dz0
movie[1]=dz1
declare -a movie[2]=dz2
echo ${movie}第一个 ${movie[1]}根据下表看 ${movie[*]}输出所有
2)数值运算
方法一:
declare -i c=$a+$b
方法二:expr或let数值运算工具
a=1
b=4
cc=$(expr $a + $b)   #注意+号左右两侧必须有空格
echo $cc
方法三:$((运算式)) 或$[运算式] 
w=$(($a+$b))   #推荐
echo $w
uu=$[$a+$b]
echo $u
变量测试表格:用于精简代码
3、环境变量配置文件
source 配置文件 [修改配置文件,直接生效方式]
正常输入用户名密码的登录过程配置文件加载顺序:
(1)/etc/profile -> /etc/profile.d/*.sh -> /etc/profile.d/lang.sh -> /etc/sysconfig/i18n
(2)~/.bash_profile -> ~/.bashrc -> /etc/bashrc -> 命令提示符
从超级用户切换到其他用户时配置文件加载顺序:
(1)/etc/bashrc -> /etc/profile.d/*.sh -> /etc/profile.d/lang.sh -> /etc/sysconfig/i18n -> 命令提示符
4、判断与流程控制
test -e /home/shell/1.sh
[ -e /home/shell/1.sh ]
-d 判断文件是否存在,且判断该文件是否为目录
-e 判断文件是否存在
-f 判断文件是否存在,且判断文件是否为文件
[ -e /home/shell/0.sh ] &&  echo "yes" || echo "no"
获取当前登录用户:env | grep USER | cut -d "=" -f 2

你可能感兴趣的:(Linux)