本地变量:作用于当前shell,对当前shell之外的其他shell进程和当前shell子进程均无效。

  本地变量赋值为

name='value'

  value可以是字符串或者是变量,引用变量使用${name}或$name或``.

  注:单引号是强引用而双引号是弱引用。

[root@izwz9bqngpatc008nw00e7z tmp]# echo '$animal'
$animal
[root@izwz9bqngpatc008nw00e7z tmp]# echo "$animal"
dog
[root@izwz9bqngpatc008nw00e7z tmp]# echo "$animals."
.
[root@izwz9bqngpatc008nw00e7z tmp]# echo "${animal}s."
dogs.
[root@izwz9bqngpatc008nw00e7z tmp]# myid = `id -u`
-bash: myid: command not found
[root@izwz9bqngpatc008nw00e7z tmp]# myid=`id -u`
[root@izwz9bqngpatc008nw00e7z tmp]# echo '$myid'
$myid
[root@izwz9bqngpatc008nw00e7z tmp]# echo "$myid"
[root@izwz9bqngpatc008nw00e7z tmp]# filename=`date +%F-%H-%M-%S`
[root@izwz9bqngpatc008nw00e7z tmp]# echo "$filename"
-----

  使用set显示已定义的所有变量,unset name 销毁变量。

  局部变量:生效在shell进程的某段代码片段中。

  环境变量:生效在当前shell进程和他的子进程中。

  声明方式为

export name=value
declare -x name=value
[root@izwz9bqngpatc008nw00e7z tmp]# export TES='animal'
[root@izwz9bqngpatc008nw00e7z tmp]# echo $TES
animal
[root@izwz9bqngpatc008nw00e7z tmp]# declare -x myname='jeffd'
[root@izwz9bqngpatc008nw00e7z tmp]# echo $myname
jeffd

  显示所有环境变量:export,env,printenv。

  销毁环境变量:unset name。

  不要使用bash内建环境变量。

  只读变量:

readonly name
declare -r name

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

[root@izwz9bqngpatc008nw00e7z tmp]# cat test.sh
#!/bin/bash
linecount="$(wc -l $1|cut -d' ' -f1)"
echo "$1 has $linecount lines."
[root@izwz9bqngpatc008nw00e7z tmp]# chmod +x test.sh
[root@izwz9bqngpatc008nw00e7z tmp]# ./test.sh /etc/passwd
/etc/passwd has lines.

  特殊变量:$?上一个命令执行状态的返回值。

  程序执行可能有两种返回值:
  1. 程序执行结果
  2. 程序状态返回吗(0-255)
    0 则为执行正确
    1-255 则执行出错(1,2,127系统预留);

  $#:获取当前shell命令行中参数的总个数
  $*:获取当前shell的所有参数 “$1 $2 $3 …,受IFS控制
  $@:这个程序的所有参数 “$1″ “$2″ “$3″ “…”,不受IFS控制
  $0 获取当前执行的shell脚本的文件名
  $n 获取当前执行的shell脚本的第n个参数值,n=1..9
  $$ 获取当前shell的进程号(PID)
  $! 执行上一个指令的PID

bash变量类型详解的更多相关文章

  1. js变量类型详解

    <html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...

  2. js课程 1-3 Javascript变量类型详解

    js课程 1-3  Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...

  3. C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解  ...

  4. C++11 并发指南六( <atomic> 类型详解二 std::atomic )

    C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)  一文介绍了 C++11 中最简单的原子类型 std::atomic_flag,但是 std::atomic_flag ...

  5. C++之string类型详解

    C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...

  6. (转)C# WebApi 接口返回值不困惑:返回值类型详解

    原文地址:http://www.cnblogs.com/landeanfen/p/5501487.html 正文 前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi ...

  7. Swift - 可选类型详解

    可选类型详解 直接上代码解释 // 类中所有的属性在对象初始化时,必须有初始化值 class Person : NSObject { var name : String? var view : UIV ...

  8. [转]C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解

    本文转自:http://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T c ...

  9. PHP常量、变量作用域详解(一)

    PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域.对于初学者来说,变量的作用域是它们所驻留的页面.因此, 如果你定义了 $var,页面余下部分就可以访问 ...

随机推荐

  1. 转载:收费版APP三年总结(个人经验+数据图分享)

    各位朋友好,apop感觉这里的朋友有许多是以广告收入为主,所以apop来分享另外一块(收费版APP)的个人三年来的总结分享,希望对各位有帮助.首 先,其实在AppStore(或GooglePlay)上 ...

  2. python之道04

    1.写代码,有如下列表,按照要求实现每一个功能 li = ["alex", "WuSir", "ritian", "barry&q ...

  3. graphviz 布局和子图,表格教程

    有了这三个利器,就搞定架构图了. 子图间互相调用要开启 http://graphviz.org/pdf/dotguide.pdf

  4. awk纯干货

    AWK的惊人表现: Awk设计的目的:简化一般文本处理的工作. 属于POSIX的一部分. AWK命令行: Awk的调用可以定义变量.提供程序并且指定输入文件: Awk [ -F fs ]  [ -v ...

  5. 【二分 贪心】bzoj3477: [Usaco2014 Mar]Sabotage

    科学二分姿势 Description Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's mi ...

  6. linux中添加一个用户到指定用户组的两种方式,修改一个用户到指定用户组的一种方式

    添加一个用户到指定用户组: gpasswd –a 用户名 组名usermod –G 组名 用户名 //第一种:gpasswd –a 用户名 组名 [root@localhost ~]# id user ...

  7. mybatis 批量操作增删改查

    在介绍批量操作之前,首先先介绍一个语法:foreach.可以说是,foreach是整个批量操作的灵魂. 属性 描述 item 循环体中的具体对象. 支持属性的点路径访问,如item.age,item. ...

  8. Controller View 模式

    参考:https://blog.andrewray.me/the-reactjs-controller-view-pattern/ Flux参考:http://www.cnblogs.com/hell ...

  9. ES5中新增的forEach等新方法的一些使用声明

    转载地址:http://www.zhangxinxu.com/wordpress/?p=3220 一.前言-索引 ES5中新增的不少东西,了解之对我们写JavaScript会有不少帮助,比如数组这块, ...

  10. java之 单根继承与集合

    1.单根继承 概念: 单根继承,意味着所有类的继承,都继承自单一的基类的继承模式 优点: (1)所有对象都具有一个共用接口,归根到底都是相同的基本类型. (1)所有对象都具有一个共用接口,归根到底都是 ...