shell脚本变量

目录

1.变量的定义

2.shell脚本中变量的定义方法

3.变量的转译

4.Linux中命令的别名设定

5.用户环境变量的更改

6.利用命令的执行结果设定变量

7.脚本函数


1.变量的定义

1)定义本身

变量就是内存一片区域的地址

shell脚本变量_第1张图片

2)变量存在的意义

命令无法操作一直变化的目标:用一串固定的字符来表示不固定的目标可以解决此问题

2.shell脚本中变量的定义方法

环境级别

export a=1

在环境关闭后变量失效

 用户级别(只针对当前用户生效)

vim ~/.bash_profile        //shell环境的配置文件

export a=1

source .bash_profile         //使配置文件生效

shell脚本变量_第2张图片

系统级别

vim /etc/profile                //系统级别的传参

export a=2

source /etc/profile

vim /etc/profile.d/westos.sh                //自定义自配置文件

export b=3

 变量名称

变量名称可包含的字符:字符、_、数字,不能用数字开头

建议变量名称短全用大写字符,变量名称长用_区分子类,如WESTOS、Westos_Linux、westoS_Linux

3.变量的转译

转译

#                       // 转译单个字符
""                           //弱引用,批量转译个数字符 不能转译“\”,“”,“$”,“!”
''                                 //强引用

shell脚本变量_第3张图片

声明

echo $ab
echo ${a}b

shell脚本变量_第4张图片

变量的数组

a=(1 2 3 4 5)
a$[a[@]:起始元素id:元素个数]      
echo ${a[0]}                //数组中第一个元素
echo ${a[*]}            //数组中所有元素
echo ${a[@]}                //数组中所有元素
echo ${a[@]:0:3}          //数组中1到3个的元素
echo ${#a[@]}         //数组中元素的个数
unset a[n]                //删除数组中的第n-1个元素
unset a                     //删除a这个数组

shell脚本变量_第5张图片

4.Linux中命令的别名设定

alias xie='vim' 	//临时设定

vim ~/.bashrc            //只针对于用户生效
alias xie='vim' 	    

vim /etc/bashrc 	    //针对系统所有用户生效
alias xie='vim'

unalias xie 		//删除当前环境中的alias

shell脚本变量_第6张图片

5.用户环境变量的更改

环境变量:
用户在操作系统时使用到的命令搜索路径

设定方式

vim  ~/.bash_profile
export PATH=$PATH:/mnt        //用户级别

vim  /etc/bash_profile
export PATH=$PATH:/mnt            //系统级别

6.利用命令的执行结果设定变量

直接利用命令执行结果

$(),``      //优先执行
TEST=hostname TEST=$(hostname)

shell脚本变量_第7张图片

脚本中的传参

非交互模式:
$0 is /mnt/test.sh 				//脚本本身
$1 is westos 					//脚本后所输入的第一串字符
$2 is linux
$3 is redhat
$* is westos linux redhat 		//脚本后所输入的所有字符"westos linux redhat"
$@ is westos linux redhat 		//脚本后所输入的所有字符'westos' 'linux' 'redhat'
$# is 3 						//脚本后所输入的字符串个数

交互模式传参:
read WESTOS 					//对westos赋值
read -p "please input word:" 	//输出提示语
-s 								//隐藏输入内容

shell脚本变量_第8张图片

shell脚本变量_第9张图片

7.脚本函数

定义:
程序的别名

设定方式:
WORD()
{
action1
action2
}

WORD 在脚本中就代表action1 action2这两个动作

练习脚本

sh create_user.sh
Please input username : westos
westos exist < output >> westos is exist > Please input username :
westos not existplease input password : 无回显密码
此用户会自动建立并且密码为提示后设定的密码
并显示 : westos is created
并再次提示 Please input username
Please input username exit
此脚本退出
ACTION()
{
read -p "please input username: " USERNAME
[ "$USERNAME" = "exit" ] && {
        echo exit
        exit
}
id "$USERNAME" &> /dev/null && {
        echo "$USERNAME" is exist
        ACTION
}||{
        echo $USERNAME is not exist
        read -p "please input password: " PASSWORD
        useradd $USERNAME
        echo $PASSWORD | passwd --stdin $USERNAME
        echo $USERNAME is created
        ACTION
}

}
ACTION

shell脚本变量_第10张图片

实现的功能是添加和删除用户。用户可以选择添加或删除,如果选择删除,会要求输入用户名,然后进行删除;如果选择添加,则先检查用户是否已经存在,如果存在则提示用户已经存在,如果不存在,则要求输入密码,然后创建用户并设置密码。

echo "[d]elete [A]dd"
read -p "please input action:" ACTION
[ "$ACTION"  != "a" -a "$ACTION" != "d" ]  && {
        echo wrong action
        exit
}

[ "$ACTION" = "d" ] && {
        read -p "please input username:" USERNAME
        id $USERNAME &> /dev/null && {
        userdel -r $USERNAME
        echo $USERNAME is deleted
}||{
        echo $USERNAME is not exist
}
        exit
}

[ "$ACTION" = "a" ] && {
        read -p "please input username:" USERNAME
        id $USERNAME &> /dev/null && {
        echo $USERNAME is exist
}||{
        read -p "please input password: " PASSWORD
        useradd $USERNAME
        echo $PASSWORD | passwd --stdin $USERNAME
        echo $USERNAME is created
}
        exit
}

shell脚本变量_第11张图片

你可能感兴趣的:(linux,运维,服务器)