bash变量类型详解
本地变量:作用于当前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变量类型详解的更多相关文章
- js变量类型详解
<html> <title>js变量类型详解</title> <meta http-equiv="content-type" conten ...
- js课程 1-3 Javascript变量类型详解
js课程 1-3 Javascript变量类型详解 一.总结 一句话总结:js对象点(属性方法),json对象冒号(属性方法).属性和方法区别只有一个括号. 1.json对象中的函数的使用? 函数名 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- C++11 并发指南六( <atomic> 类型详解二 std::atomic )
C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍) 一文介绍了 C++11 中最简单的原子类型 std::atomic_flag,但是 std::atomic_flag ...
- C++之string类型详解
C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...
- (转)C# WebApi 接口返回值不困惑:返回值类型详解
原文地址:http://www.cnblogs.com/landeanfen/p/5501487.html 正文 前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi ...
- Swift - 可选类型详解
可选类型详解 直接上代码解释 // 类中所有的属性在对象初始化时,必须有初始化值 class Person : NSObject { var name : String? var view : UIV ...
- [转]C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
本文转自:http://www.cnblogs.com/landeanfen/p/5501487.html 阅读目录 一.void无返回值 二.IHttpActionResult 1.Json(T c ...
- PHP常量、变量作用域详解(一)
PHP 中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域.对于初学者来说,变量的作用域是它们所驻留的页面.因此, 如果你定义了 $var,页面余下部分就可以访问 ...
随机推荐
- iterator与iterable
用Iterator模式实现遍历集合Iterator模式是用于遍历集合类的标准访问方法.它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构.例如,如果没有使用Iterato ...
- Spring框架context的注解管理方法之二 使用注解注入基本类型和对象属性 注解annotation和配置文件混合使用(半注解)
首先还是xml的配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...
- app内嵌H5调用分享
最近产品提出了一个需求:我们在合作方的app中提供的部分页面中增加分享页面,具体要求是在3个二维码推广页面调用app的分享接口,分享方式有3种,分别是点击”分享链接“按钮调起分享,点击”分享图片“按钮 ...
- Git学习——删除文件
怎么删除版本库中的文件呢? 首先,删除工作区中的文件:rm <file>,然后你有两个选择.其一是,真正删除版库中的文件: git rm <file> git commit - ...
- The eleven Day
库操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等 performance_schema ...
- dom事件机制系列
JS事件流机制 一个完整的JS事件流是从window开始,最后回到window的一个过程,事件流被分为三个阶段: (1~5)捕获过程.(5~6)目标过程.(6~10)冒泡过程. 通过addEventL ...
- python爬虫(爬取段子)
python爬取段子 爬取某个网页的段子 第一步 不管三七二十一我们先导入模块 #http://baijiahao.baidu.com/s?id=1598724756013298998&wfr ...
- 数据结构( Pyhon 语言描述 ) — —第10章:树
树的概览 树是层级式的集合 树中最顶端的节点叫做根 个或多个后继(子节点). 没有子节点的节点叫做叶子节点 拥有子节点的节点叫做内部节点 ,其子节点位于层级1,依次类推.一个空树的层级为 -1 树的术 ...
- python datetime,time时间格式和用法
我是转载的这个大神的 他的网址:https://www.cnblogs.com/wanglinjie/p/9226926.html #以下是time的方法 >>> import ...
- (转)5个Xcode开发调试技巧
1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问 ...