如何用服务器代替空间做网站,重庆建网站cqiezscom,建设淘宝客网站.lc和ev,icp信息备案管理系统目录
一、变量的定义
二、shell脚本中变量的定义方法
1、变量名称
2、环境级别
3、用户级别
4、系统级别
5、删除设定的变量
三、变量的转译
1、转译
2、声明
3、变量的数组
四、Linux中命令的别名设定
五、用户环境变量的更改
脚本中的传参
1、非交互模式
2…目录
一、变量的定义
二、shell脚本中变量的定义方法
1、变量名称
2、环境级别
3、用户级别
4、系统级别
5、删除设定的变量
三、变量的转译
1、转译
2、声明
3、变量的数组
四、Linux中命令的别名设定
五、用户环境变量的更改
脚本中的传参
1、非交互模式
2、交互模式
六、脚本函数
练习脚本 一、变量的定义
变量就是内存一片区域的地址用一个字符串表示内存地址的方式变量存在的意义命令无法操作一直变化的目标用一串固定的字符来表示不固定的目标可以解决此问题
二、shell脚本中变量的定义方法
1、变量名称
变量名称可包含的字符字母下划线_数字变量名称定义规则不能用数字开头建议变量名称短全用大写字符变量名称长用_区分子类
用sh无法运行脚本用.可以运行脚本 因为sh的运行方式会在当前shell中重新开启一个子shell因此变量的值没有传递到子shell中所以无法得到运行结果须将变量放到公共区域中去。
2、环境级别 export a1 在环境关闭后变量失效 当环境关闭后shell在内存中的所有数据被系统回收打开新的shell是一个新的内存地址无法寻址得到a的值
3、用户级别
环境关闭后仍有效切换用户后失效
vim ~/.bash_profile
export a1
4、系统级别
不受环境和用户的影响
vim /etc/profile
export a2
vim /etc/profile.d/westos.sh
export b3
5、删除设定的变量
依次删除设定的系统变量用户变量环境变量
rm -fr /etc/profile.d/skk.sh
vim ~/.bash_profile
unset a
三、变量的转译
1、转译
\转译单个字符“”弱引用批量转译字符不能转译\ $ !强引用$$当前进程的id 2、声明
对a做变量声明
a1
echo $ab
echo ${a}b 3、变量的数组
a(1 2 3 4 5 6)
a$[a[]:起始元素id:元素个数]echo ${a[0]} ##数组中第一个元素
echo ${a[3]} ##数组中第4个元素
echo ${a[-1]} ##数组中最后一个元素
echo ${a[*]} ##数组中所有元素
echo ${a[]} ##数组中所有元素
echo ${a[]:0:3} ##数组中第1到3个元素
echo ${a[]:3:3} ##第三个元素后的三个元素
echo ${#a[]} ##数组中元素的个数unset a[n] ##删除数组中的第n1个元素
unset a ##删除a这个数组 四、Linux中命令的别名设定
alias xievim ##临时设定
vim ~/.bashrc
alias xievim ##只针对当前用户生效
vim /etc/bashrc
alias xievim ##针对系统所有用户生效
vim /etc/skel/.bashrc
alias xievim ##针对新建的用户生效
alias ##查看
unalias xie ##删除当前环境中的alias
五、用户环境变量的更改
设定的方式
export PATH$PATH:/mnt ##环境级别
vim ~/.bash_profile ##用户级别
vim /etc/bash_profile ##系统级别
/mnt下的脚本有执行权限后可以不用加绝对路径执行 脚本中的传参
1、非交互模式
$0shell脚本的文件名$1脚本后所输入的第一串字符$2脚本后所输入的第二串字符$*脚本后所输入的所有字符1 2 3$脚本后所输入的所有字符1 2 3$#脚本后所输入的字符串个数
vim test.shecho $0 is $0
echo $1 is $1
echo $2 is $2
echo $* is $*
echo $ is $
echo $# is $# 2、交互模式
read赋值-p输出提示语-s隐藏输入内容echo 换行
vim test2.shread -p Please input name: -s NAME
echo
echo $NAME 六、脚本函数
定义程序的别名 设定方式WORD在脚本中就代表action1 、action2这两个动作
WORD()
{action1action2
}
练习脚本
1 sh create_user.sh Please input username: westos westos exist westos is existPlease input username: westos not existplease input password: 无回显密码 此用户会自动建立并且密码为提示后设定的密码 并显示:westos is created 并再次提示Please input username 当Please input usernameexit 此脚本退出 EXIT()
{read -p Please input username: username[ $username exit ]||[ $username EXIT ] {echo byeexit}||{USER_ACTION $username}
}USER_ACTION()
{id $1 /dev/null {echo $1 is existEXIT}|| {read -p Please input password: -s passwordecho useradd $1echo $password | passwd --stdin $1 /dev/null echo $1 is createdEXIT}
}
EXIT 2
echo [a]add [d]delete
read -p Please input action: ACTION[ $ACTION ! a -a $ACTION ! d ] {echo Wrong action !!exit}[ $ACTION a ] {read -p Please input username: USERNAMEid $USERNAME /dev/null {echo $USERNAME is exist !!}||{read -p Please input password: PASSWORDuseradd $USERNAMEecho $PASSWORD | passwd --stdin $USERNAME /dev/null {echo $USERNAME is created !!}exit}
}[ $ACTION d ] {read -p Please input username: USERNAMEid $USERNAME /dev/null {userdel -r $USERNAMEecho $USERNAME is delete !!}||{echo $USERNAME is not exist !!}exit
}