Linux学习 - Bash变量

Posted hwzheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习 - Bash变量相关的知识,希望对你有一定的参考价值。

一、用户自定义变量(本地名)

  用户自定义变量只有在当前的shell中生效

  1 定义变量

    name="zheng huiwei"

    aa=123

  2 变量叠加

    aa="$aa"456

    aa=${aa}789

  3 变量调用

    echo $name

    echo $aa

  4 变量查看

    set

  5 变量删除

    unset name

    unset aa

二、环境变量

  保存的是和系统操作环境相关的数据,

  环境变量会在当前shell和这个shell的所有子shell当中生效,如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的shell中生效。

  使用命令:bash可以建立子shell,使用命令:pstree确定进程数

  1 申明变量

    export 变量名=变量值

    或

    变量名=变量值

    export 变量名

  2 查询变量

    env

  3 删除变量

    unset 变量名

  4 系统常见环境变量

    (1)PATH:系统查找命令的路径

        # echo $PATH

        /usr/lib/qt-3.3/bin: /usr/local/sbin/: usr/local/bin: /sbin: /bin: /usr/sbin: /usr/bin: /root/bin

       注:可以将自己的脚本位置添加到PATH系统查找命令路径之下

         例如我的脚本在/home/zhw/sh/hello.sh中,使用变量叠加命令

         PATH="$PATH":/home/zhw/sh 将脚本位置添加到系统查找命令路径下

    (2)PS1:定义系统提示符的变量

提示符 功能 格式
\\d 显示日期 “星期 月 日”
\\h 显示简写主机名 默认“localhost”
\\t 显示24小时制时间 “HH:MM:SS”
\\T 显示12小时制时间 “HH:MM:SS”
\\A 显示24小时制时间 “HH:MM”
\\u 显示当前用户名  
\\w 显示当前所在目录的完整名称  
\\W 显示当前所在目录的最后一个目录  
\\# 显示执行的是第几个命令  
\\$ 提示符

root用户提示“#”

普通用户提示“$”

          例:

          

三、位置参数变量

  用来向脚本当中传递参数或数据,变量名不能自定义,变量作用是固定的

位置参数变量 作用
$n 

$0代表命令本身

$1-$9代表第1个到第9个输入参数

${10} 

$*  $*把所有的参数看成一个整体
$@ $@把每个参数区分对待
$# 命令行中所有参数的个数

四、预定义变量

  在Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

  1 预定义变量

预定义变量 作用
$?

最后一次执行的命令的返回状态

返回0:上一条命令执行正确

返回非0:上一条命令执行错误

$$ 当前进程的进程号(PID)
$! 后台最后一个进程的进程号(PID)

      例:$?

          

      例:$$、$!

          

          

  

 

以上是关于Linux学习 - Bash变量的主要内容,如果未能解决你的问题,请参考以下文章

linux学习第4天(自习)

Linux学习笔记--bash脚本编程之一变量变量类型

Linux学习笔记——bash命令及shell变量简介

linux学习18 shell脚本基础-bash变量和逻辑运行

Linux技巧学习

[Linux Shell学习系列五]Shell编程基础-Bash的内部变量,位置参数和特殊参数