bash中的变量详解

    在bash中,巧妙地运用变量,能够大大减轻编程的工作量,下面让我们来详细了解一下bash的变量.

bash中的变量种类:

    根据变量的生效范围等标准:

        本地变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效

        环境变量:生效范围为当前shell进程及其子进程

        局部变量:生效范围为当前shell进程中某代码片断(通常指函数)

        位置变量: $1, $2, …来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数

        特殊变量: $?, $0, $*, $@, $#


本地变量:生效范围为当前shell进程;对当前shell之外的其它shell进程,包括当前shell的子shell进程均无效

    变量赋值: name=‘value’,

    可以使用引用value:

    (1) 可以是直接字串; name=“root"

    (2) 变量引用: name="$USER"

    (3) 命令引用: name=`COMMAND`, name=$(COMMAND)

    变量引用: ${name}, $name

    "":弱引用,其中的变量引用会被替换为变量值

    '':强引用,其中的变量引用不会被替换为变量值,而保持原字符串

    显示已定义的所有变量: set

    删除变量: unset name

    当变量不再需要时,要释放变量,以减轻内存的负担


环境变量(当前shell及其子进程均可引用)

    变量声明、赋值

    export name=VALUE

    declare -x name=VALUE

    变量引用: $name, ${name}

    显示所有环境变量:

    export

    env

    printenv

    删除: unset name

    bash有许多内建的环境变量: PATH, SHELL, USRE,UID,HISTSIZE, HOME, PWD, OLDPWD, HISTFILE, PS1


只读和位置变量

只读变量:只能声时,但不能修改和删除

        readonly name

        declare -r name

位置变量:在脚本代码中调用通过命令行传递给脚本的参数

    $1, $2, …:对应第1、第2等参数, shift [n]换位置

    $0: 命令本身

    $*: 传递给脚本的所有参数,全部参数合为一个字符串

    $@: 传递给脚本的所有参数,每个参数为独立字符串

    $#: 传递给脚本的参数的个数

    $@ $* 只在被双引号包起来的时候才会有差异

        示例:判断给出的文件的行数

        linecount="$(wc -l $1| cut -d' ' -f1)"

        echo "$1 has $linecount lines."

       

  [root@localhost testdir]# cat 1.sh
        #!bin/bash
        #
        ./2.sh "$@"
        echo =================
        ./2.sh "$*"
        [root@localhost testdir]# cat 2.sh
        echo $1
        echo $2
        [root@localhost testdir]# bash 1.sh 11 22
        11
        22
        =================
        11 22


原创文章,作者:hunter,如若转载,请注明出处:http://www.178linux.com/36080

(0)
上一篇 2016-08-18 15:27
下一篇 2016-08-18 17:22

相关推荐

  • N26-第四周作业-邢岩

    马哥门徒-N26-邢岩   精神练习需要深入认真的工作以及热情的劲头。当你开始练习,你是在挣扎、在反抗,你需要集中精力,然后慢慢进步。那么,我们就开始吧。   第一题,复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。   ~]# cp -r /et…

    Linux干货 2017-02-15
  • httpd服务归纳:httpd基本配置(https原理以及配置 )

    一 https介绍以及实现机制   1. https协议:      在传统的http协议中,文档是明文传送的,网页涉及敏感信息是,将变得很不安全。为了保证敏感信息的安全,httpd结合加密库openssl或openssh 产生了https 协议。这就好比两个黑社会团伙交易,都怕出事被抓,…

    Linux干货 2015-05-23
  • Linux基础

    Linux入门以及文件重定向、用户管理、软件管理等

    Linux干货 2018-03-17
  • LVM的管理和使用

    LVM的管理和使用

    Linux干货 2017-10-27
  • 网络yum源的配置

    1.准备: 光盘 包 元数据 2.网络服务http(s)  ftp 查看是否安装  which  vsftp;  ls  /misc/cd/Packages | grep vsftpd 安装  rpm  -ivh  /misc/cd/Packages/vsftpd… …

    2017-06-13
  • http

    练习:分别使用CentOS 7和CentOS 6实现以下任务 一、配置三个基于名称的虚拟主机          (a) discuzX          (b) wordpress  &nb…

    Linux干货 2016-10-09