#########shell脚本中变量的种类及定义方法##################
环境变量:环境变量只在当前shell中生效,shell关闭变量丢失
export A=1
用户变量:写在用户的骨文件中,值针对当前用户生效
vim ~/bash_profile
{
export B=1
}
系统级变量:被写在系统的配置文件 /etc/profile 或者 /etc/profile.d 中,对于所有用户都生效
vim /etc/profile
{
exprot C=1
}
##########字符的转译及变量的声明#########
\ 转译单个字符
“” 弱引用,批量转译"“中出现的字符
‘’ 强引用,批量转译’'中出现的字符
‘’ 与”" 两者的区别在于,"“不能转译 " “, “`”, “!”,”$”
${} 声明变量
#########变量值传递###################
$1 脚本后的第一串字符串
$2 脚本后的第二串字符串
$3 脚本后的第三串字符串
$# 脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“1 2 3”
$@ 脚本后跟的所有字符串,模式为“1” “2” “3”
########read实现变量传递#################
read WESTOS
read -p "Please input Username: " NAME
read -p "Please input Username: " -s PASSWD #-s 不显示
#######liunx系统中命令别名的设定##############
环境级:
alias xie=‘vim’
用户级:
vim ~/.bashrc
{
alias xie=‘vim’
}
系统级:
vim /etc/bashrc
{
alias xie=‘vim’
}
unalias xie #取消别名设定时须删除系统以及用户中的设定
##########利用命令执行结果设定变量#########
Time=date
Hostname=$(hostname)
$?
$? 是命令在执行完成之后产生的退出值范围是[0-255]
当 $=0 时表示用命令执行没有错误输出
这个值可以用 exit 命令执行
例如 exit 66
############脚本中的函数#################
脚本中的函数是把一个复杂的语块定义成一个字符串的方法
例1:
vim f.sh
{
#!/bin/bash
WESTOS()
{
echo -e “\033[31mKaTeX parse error: Expected 'EOF', got '\0' at position 2: *\̲0̲33[0m"
}
GREEN(…*\033[0m”
}
GREEN westos
WESTOS “hello westos”
}
例2:
vim f1.sh
{
#!/bin/bash
READ()
{
read -p "Please input word: " WORD
[ “$WORD” = “exit” ] &&{
echo bye
exit 0
}
echo $WORD
READ
}
READ
}
例3:
vim f2.sh
{
#!/bin/bash
CREATE()
{
read -p "Please input Username: " NAME
[ "$NAME" = "exit" ] && {
echo Bye~
exit 0
}
useradd $NAME &> /dev/null &&{
read -p "Please input Password:" -s PASSWD
echo $PASSWD | passwd --stdin $NAME &> /dev/null
echo ""
echo -e "\033[32m$NAME is created successfully !!\033[0m"
} || {
echo -e "\033[31m$NAEM is already exist !!\033[0m"
}
CREATE
}
CREATE
}