本地变量:作用于当前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. "Uncaught SyntaxError: Unexpected token <"错误完美解决

    今天写代码的时候发现了"Uncaught SyntaxError: Unexpected token <" <html>的js错误,而且还是html的第一行,我就 ...

  2. 作用域插槽 向父组件传递 <template slot-scope="{ row, index }" slot="dateNo">

    作用域插槽 向父组件传递 <template slot-scope="{ row, index }"  slot="dateNo"> slotTes ...

  3. CAD交互绘制批注(网页版)

    js中实现代码说明: 动态拖放时的绘制事件: function DynWorldDrawComment( pCustomEntity, pWorldDraw, curPt) { // 得到绘制参数. ...

  4. 浅谈web前端开发

    我个人认为前端攻城狮其实就是编程技术人员,用一句话来形容“比UI设计懂技术,比技术人员更懂交互”,当然也有人说前端工程师是工程师中的设计师,是设计师中的工程师. 好了废话不多说了,下面进入正题吧!   ...

  5. 《3+1团队》第八次团队作业:Alpha冲刺

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...

  6. iptables(1)工具详解

    一. iptables 查看链表,创建链表,类命令 1. iptables [-t table] -N chain : 创建一条自定义规则的链 1 2     # iptables -t filter ...

  7. 【dp】bzoj1613: [Usaco2008 Jan]Running贝茜的晨练计划

    还记得这是以前看上去的不可做题…… Description 奶牛们打算通过锻炼来培养自己的运动细胞,作为其中的一员,贝茜选择的运动方式是每天进行N(1<=N<=10,000)分钟的晨跑.在 ...

  8. log4j日志输出到文件的配置

    1.Maven的dependency 2.log4j.properties的配置 3.Junit的Test类 4.web.xml的配置(非必要) 5.spring的db.config的配置(非必要) ...

  9. perl中foreach(一)

    perl中的foreach结构  首先语法 foreach $rock(qw /bedrock slate lava/){        $rock="\t$rock";      ...

  10. 模块导入及使用,关键字,模块搜索路径,python文件的两种用途

    06.05自我总结 一.模块导入及使用 1.模块导入的两种方式 我们拿time模块并使用其中的time功能进行举例 a)第一种 import time print(time.time) import首 ...