1.变量的分类;

用户自定义变量:   变量自定义 默认存储是字符串
环境变量:              这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
位置参数变量:      这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
预定义变量:          是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的

2.用户自定义变量

1.定义变量
        格式:变量名称=变量值(=左右不能加空格)
 例如:
        x=5 就定义了一个叫 x 的变量
       注意 5 是字符,不是数字,不能加减乘除。
      name="hello world"

2.变量调用
   在变量名之前加一个 $表示变量的值
        例如:输出变量的值
           echo $x
           echo $name

3.变量叠加
     x=123
     x="$x"456 或  x=${x}456

4.变量查看
      set 会显示当前系统中所有运行的变量
      set -u 如果设定此选项,调用未声明变量时会报错(默认无任何提示)

5.删除变量
     unset 变量名
     例如:unset name

3.bash环境变量

1.环境变量与用户自定义变量的区别
         环境变量是全局变量,用户自定义变量是局部变量。
         用户自定义变量只在当前的 shell 中生效,环境变量在当前 shell 和这个 shell 的所有子 shell 中生效。
         用户可以自定义环境变量,但对系统生效的环境变量名和变量作用是固定的。

2.用户自定义环境变量
         export 变量名=变量值

        变量名=变量值
        export 变量名

3.查看环境变量
       set 查看所有变量
       env 查看环境变量

4.删除环境变量
      unset 环境名

5.常用的环境变量
         HOSTNAME:主机名
         SHELL:当前的 shell
         TERM:终端环境
         HISTSIZE:历史命令条数
         SSH_CLIENT:当前操作环境是用 ssh 连接的,这里记录客户端 ip
         SSH_TTY:ssh 连接的终端是 pts/1
         USER:当前登录的用户
         PATH:系统搜索命令的路径
要想直接通过脚本名执行自己的脚本:
(1)将脚本拷贝至 PATH 中的任意目录下(不建议这样做),例如:
          cp hello.sh /bin/
(2)将脚本所在目录添加到 PATH 变量中,例如:
          PATH="$PATH":/root/sh 但系统重启后失效(用的是变量叠加)
PS1:命令提示符设置
      \d:显示日期,格式为"星期 月 日"
      \H:显示完整的主机名
      \t:显示 24 小时制时间,格式为"HH:MM:SS"
      \A:显示 24 小时制时间,格式为"HH:MM"
      \u:显示当前用户名
      \w:显示当前所在目录的完整名称
      \W:显示当前所在目录的最后一个目录
      \$:提示符。root 用户为"#",普通用户为"$"

6:语系变量

环境变量中的语系变量
    locale          #查询当前系统语系
    LANG        #定义系统主语系的变量
    LC_ALL #定义整体语系的变量
    echo $LANG #查看系统当前语系
    locale -a | more
   #查看Linux支持的所有语系

查看默认语系
     cat /etc/sysconfig/i18n
显示:
     LANG="zh_CN.UTF-8"
#表示开机默认就是中文语系UTF-8编码

4.位置参数变量

1.位置参数变量
         $n:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如 ${10}。
         $*:这个变量代表命令行中所有的参数,$* 把所有的参数看成一个整体。
         $@:这个变量也代表命令行中所有的参数,不过 $@ 把每个参数区分对待。
         $#:这个变量代表命令行中所有参数的个数。

2.例子1:
 #!/bin/bash
     num1=$1
     num2=$2
     sum=$(($num1+$num2)) 
#变量 sum 的和是 num1 加 num2
    echo $sum 
#打印变量 sum 的值

执行脚本:
    ./test.sh   45 76

3.例子2
     #!/bin/bash
     echo "A total of $# parameters"
                                         #使用 $# 代表所有参数的个数
     echo "The parameters is:$*"
                                        #使用 $* 代表所有的参数
     echo "The parameters is:$@"
                                        #使用 $@ 代表所有的参数

执行脚本:
           ./test.sh 11 22 33 44

4.例子3:$* 与 $@ 的区别
#!/bin/bash
for i in "$*"
                         # $* 中所有参数看成是一个整体,所以这个 for 循环只会循环一次
do
echo "The parameters is:$i"
done

for y in "$@"
                 # $@ 中每个参数都看成是独立的,所以 $@ 中有几个参数,就会循环几次
do
echo "Parameter:$y"
done

5.预定义变量

预定义变量:
  1.$?:最后一次执行的命令的返回状态。
     如果这个变量的值为0,证明上一个命令正确执行;

如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。
2.$$:当前进程的进程号(PID)。
3.$!:后台最后一个运行的进程的进程号(PID)。

接收键盘输入:
    read [选项] [变量名]
    选项:
        -p "提示信息":在等待read输入时,输出提示信息
        -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
        -n 字符数:read命令只接受指定的字符数,就会执行
        -s:隐藏输入的数据,适用于机密信息的输入

read.sh:
#!/bin/bash

read -p "please input your name:" -t 30 name
echo $name

read -p "please input your passwd:" -s passwd
echo -e "\n"
echo $passwd

read -p "please input your sex [M/F]:" sex
echo -e "\n"
echo $sex

二:shell之bash变量的更多相关文章

  1. Shell基础-Bash变量-用户自定义变量

    变量设置规则: 变量名称可以由字母.下划线和数字组成,但是不能由数字开头. 在Bash中变量的默认类型是字符串类型,若需要进行数值运算,则需指定变量类型为数值型.变量用等号链接,且两边不能有空格.若需 ...

  2. linux笔记:shell基础-bash变量

    shell变量设置规则: 变量的分类: 环境变量的设置: 系统常见环境变量: 位置参数变量(用来接收脚本的参数): 预定义变量: 接收键盘输入(将键盘输入的值赋值给变量名): 用declare声明变量 ...

  3. Linux学习 -- Shell基础 -- Bash变量

    变量 默认是字符串型,数值型需要显示指定 等号两侧都不能有空格 单引号:原始字符串  双引号:保留转义 命令结果作为值:反引号 或 $() 环境变量一般用大写 自定义变量 变量定义    name=& ...

  4. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

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

    一.回顾 1.用户管理,权限管理,install,mktemp 2.用户管理: 3.权限管理: mode,ownership mode: user group other r w x 4.命令:ins ...

  6. shell 编程 && bash 简介(shell 变量、shell操作环境、数据流重导向、管线命令、shell script)

    如何学习一门编程语言 数据类型 运算符 关键字 1 认识BASH 这个shell linux是操作系统核心,用户通过shell与核心进行沟通,达到我们想要的目的.硬件.核心.用户之间的关系: 原理:所 ...

  7. shell编程之BASH变量(2)

    变量命名规范 在bash中,变量的默认类型都是字符串型,定义 name = 'kk' 变量分类 用户自定义变量.变量自定义的 环境变量:这种变量中主要保存的是和系统操作环境相关的数据.变量可以自定义, ...

  8. [Shell]Bash变量:数值运算及运算符

    ------------------------------------------------------------------------------------------------- Sh ...

  9. 你可能不知道的shell、bash二三事(Centos 7)

    个人.bashrc: ~/.bashrc: # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp ...

随机推荐

  1. Uploadify 上传插件引起Chrome崩溃解决方法

    将Uploadify初始化代码延时加载,可解决Chrome崩溃. setTimeout(initUploadify, 60); function initUploadify() { var $Uplo ...

  2. css中white-space的值pre-wrap

    CSS中white-space属性设置如何处理元素内的空白.默认值normal表示:空白会被浏览器忽略. white-space这个属性声明建立布局过程中如何处理元素中的空白符.值 pre-wrap ...

  3. C#仿google日历asp.net简单三层版本

    网上搜了很多xgcalendar的例子都是Php开发的,而且官方站上的asp.net/MVC版 在vs10 08 都报错. 所以自己重新用三层写了一下希望对大家有帮助 废话不多说了 先看看它都有些什么 ...

  4. JavaScript实战(带收放动画效果的导航菜单)

    虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏福:http://www. ...

  5. IE中的条件注释(转载自网络)

    IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决 ...

  6. datagridview的数据存取

    这里主要是复习DataSet等数据或ADO.NET方面的知识.下面是一个简单的数据存储(在DataGridView上增加一行然后并存储到数据库的过程): private void button1_Cl ...

  7. 茎叶图(stem)

    介绍 茎叶图(Stem-and-Leaf display)又称“枝叶图”,由统计学家约翰托奇( Arthur Bowley)设计,它的思路是将数组中的数按位数进行比较,将数的大小基本不变或变化不大的位 ...

  8. SharePoint 2013 showModalDialog 弹出模式窗口

    1. SharePoint 弹出框 本文讲述SharePoint 2013 中使用 SP.UI.ModalDialog.showModalDialog时 showModalDialog  未定义的问题 ...

  9. UITextFiled,UITextView长度限制

    长度限制用到的地方很多,但是需求都不一样.有的要求全部字符按一个处理,有的要求英文字母按一个,中文按两个,emoji按四个.这样就会遇到各种各样奇怪的问题,再被虐了无数次后,终于解决掉了.下面就来写写 ...

  10. 【代码笔记】iOS-使图片两边不拉伸,中间拉伸

    代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // ...