shell——4.4shell脚本中的变量

目录

一.变量的定义

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

三.变量的转译 :

四.Linux中命令的别名设定

五.用户环境变量的更改

六.变量定义方式

七.脚本函数 :

八.练习:


一.变量的定义

#### 定义本身
变量就是内存一片区域的地址
#### 变量存在的意义

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

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

1.环境级别 :

export a=1
在环境关闭后变量失效

2. 用户级别

vim ~/.bash_profile       ##用户环境变量配置文件
    export a=1
source ~/.bash_profile    ##生效当前修改信息
用户级别在exit退出之后,ssh -l 重新连接之后依然生效,但是su切换用户之后就不生效了

3. 系统级别

vim /etc/profile		##配置主文件,不推荐该
vim /etc/profile.d/lq.sh	##系统级环境变量的自定义子配置文件
	export a=1
source /etc/profile.d/lq.sh
su - westos
sh /mnt/test.sh		##显示
su
sh /mnt/test.sh		##显示

相对路径
vim ~/.bash_profile
	PATH=$PATH:$HOME/bin:/mnt
source ~/.bash_profile
echo $PATH
chmod +x /mnt/test.sh
test.sh

4.变量名称

变量名称可以包含字母、下划线、数字,但是不能用数字开头

建议名称短时全部使用大写字符,名称长时用_区分子类

WESTOS
Westos_Linux
westoS_Linux

三.变量的转译 :

1.转译 :

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

2. 声明 :

a=1
echo $a
echo $ab		##当显示$ab时本身想让$a的值显示出来,但是系统识别$ab是变量名称,
echo ${a}b		##所以在次对a进行变量声明

 

 3.变量的数组:

a=(1 2 3 4 5)
a$[a[@]:起始元素id:元素个数]
echo ${a[0]}		##0代表第一个元素,1代表第二个元素,以此类推,
echo ${a[*]}		##*代表"1 2 3 4 5" 
echo ${a[@]}		##@代表 “1” “2” “3” “4” “5”
echo ${#a[*]}		##显示有几个元素
echo ${a[-1]}		##倒数第一个元素
echo ${a[@]:0:3}	##从第一个元素开始显示后三个
echo ${a[@]:2:3}	##从第三个元素开始显示后三个
unset a[0]		##删除数组中的第一个元素	
unset a			##删除数组

四.Linux中命令的别名设定

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


vim ~/.bashrc
	alias xie='vim'	##只针对与用户生效
source ~/.bashrc
su - westos 不行


vim /etc/bashrc		##针对系统所以用户生效
	alias xie='vim'
su - westos 可以

先在两个文件中删除alias xie='vim',alias还是可以看到,然后unalias xie就可以删除
unalias xie		##删除当前环境中的alias

五.用户环境变量的更改

设定方式:
~/.bash_profile
export PATH=$PATH:/mnt
/etc/bash_profile
export PATH=$PATH:/mnt

vim ~/.bash_profile
PATH=$PATH:$HOME/bin /mnt
指定在执行命令时/mnt中的脚本可以用相对路径调用
 


 

 六.变量定义方式

一.利用命令的输出指定变量的值
    export a=1
    echo $a
    TIME=`date`
    echo $TIME
    TIME=$(date)等同于TIME=`date`
    echo $TIME


 

    二. 非交互模式:
    vim westos.sh    写
        echo '$0' is $0
        echo '$1' is $1
        echo '$2' is $2
        echo '$3' is $3
        echo '$*' is $*
        echo '$@' is $@
        echo '$#' is $#
    sh westos.sh westos linux redhat    显示
        $0 is westos.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         <!脚本后所输入的字符串个数>

三.交互模式传参:
    rm -rf westos.sh
    vim westos.sh    写        
        read -p "Please input word: " WORD        ##WORD表示变量,-p表示显示提示语句
        echo $WORD
    vim westos.sh   写    
    read -p "Please input word: "-s  WORD            ##-s 隐藏录入的值
   

 

 

七.脚本函数 :

脚本中的脚本
    ECHO()
    {
       read -p "Please input word: " WORD
      echo $WORD
      ECHO
      }
    ECHO
无限循环,ctrl+c退出

 

 八.练习:

第一题:

 

第二题:

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值