4.脚本语言-----shell脚本中的变量

一、变量的定义

定义本身

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

变量存在的意义

变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,更加方便使用。

命令无法操作一直变化的目标

用一串固定的字符来表示不固定的目标可以解决此问题

二、shell脚本中变量的定义方法

1.环境级别
export a=1	#直接输入命令,定义变量,在环境关闭后变量失效
env	#查看变量
2.用户级别
  vim ~/.bash_profile
  export b=2
3.系统级别
  vim /etc/profile
  export c=3

  vim /etc/profile.d/westos.sh
  export d=4
source ~/.bash_profile	#运行
source /etc/profile
source /etc/profile.d/westos.sh
env	#查看变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、变量名称

变量名称可包含的字符

字母
下划线_
数字

变量名称定义规则

不能用数字开头

建议:

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

四、变量的转译

1.转译

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

2.声明

a=1
echo $ab
echo ${a}b

3.变量的数组

a=(1 2 3 4 5)
a$[a[@]:起始元素id:元素个数]

echo $a 		##默认显示数组第一个
echo ${a[0]}		##数组中第一个元素
echo ${a[-1]}		##数组中最后一个元素
echo ${a[*]}		##数组中所有元素
echo ${a[@]}		##数组中所有元素
echo ${a[@]:0:3}	##数组中1-3个元素
echo ${#a[@]}		##数组中元素的个数
unset a[n]		##删除数组中的第n-1个元素
unset a			##删除a这个数组

在这里插入图片描述
在这里插入图片描述

4.Linux中命令的别名设定

alias jwl='521'		##临时设定
vim ~/.bashrc
alias jwl='521'		##只针对与用户生效
vim /etc/bashrc		##针对系统所以用户生效
alias jwl='521'
unalias jwl		##删除当前环境中的alias

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.用户环境变量的更改

设定方式:
vim ~/.bash_profile	#配置文件
export PATH=$PATH:/mnt	#添加环境目录
source ~/.bash_profile	#刷新
vim /etc/bash_profile	#配置文件
export PATH=$PATH:/mnt	#添加环境目录
source /etc/bash_profile#刷新

这个比较重要,像JAVA、Hadoop、Spark等都需要对环境变量配置

1)直接利用命令执行结果

$()| ##优先执行

TEST=hostname TEST=$(hostname)

2)脚本中的传参

非交互模式:

$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				##隐藏输入内容

五、脚本函数

定义:
程序的别名

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

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

六、练习脚本

sh create_user.sh

Please input username: westos

westos exist----—> westos is exist------>Please input username:

westos not exist---------please input password: 无回显密码

此用户会自动建立并且密码为提示后设定的密码

并显示:westos is created

并再次提示Please input username:

当Please input username:exit

此脚本退出

##脚本书写思路

判定exit推出


  [ "$USER" = "exit" -o "$USER" = "EXIT" ] &&{

  ​		echo bye

  }||{

  ​		进入判定用户是否存在

  }

判定用户是否存在

  **用户存在显示返回判定exit**

  id 用户名称变量 &> /dev/null && {

  ​		echo 用户存在

  ​		判定exit

  }

  **用户不存在建立用户返回判定exit**

  ||{

  显示 please input password:

  建立用户

  更改密码

  显示用户建立成功

  判定exit

  }
vim create_user.sh
USERADD()
{
  read -p "Please input username: " name
  [ "$name" = "exit" ] &&{
  echo bye
  exit
  }
    useradd $name &> /dev/null&&{
    read -p "Please input your passwd: " -s password
    echo $password | passwd --stdin $name &>/dev/null
    echo ' '
    echo westos is created!!! 
    USERADD
  }||{
      echo westos is exist!!! 
      USERADD
    }
}
USERADD       
sh create_user.sh	#运行脚本

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值