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,页面余下部分就可以访问 ...
随机推荐
- vue2.0动画
相对于vue1.0来说,vue2.0的动画变化还是挺大的, 在1.0中,直接在元素中加 transition ,后面跟上名字. 而在vue2.0中,需要把设置动画的元素.路由放在<transit ...
- rf统计条数
js模式 直接引用关键字模式
- vue计算属性无法监听到数组内部变化
计算属性可以帮助我们简化代码,做到实时更新,不用再自己添加function去修改data. 首先看一下计算属性的基本写法(摘自官网) var vm = new Vue({ el: '#demo', d ...
- mysql 特定查询条件下导致的大海捞针
order表: order type gmt_create type 取值: 0,1 其中0非常多,1非常少. 当查询条件里 select * from order where type=0 an ...
- shell脚本,awk 根据文件某列去重并且统计该列频次。
a文件为 a a a s s d .怎么把a文件变为 a s d .怎么把a文件变为 a a a s s d 解题方法如下: 解题思路 [root@localhost study]# awk 'NR= ...
- Spring框架针对dao层的jdbcTemplate操作crud之query查询数据操作
查询目标是完成3个功能: (1)查询表,返回某一个值.例如查询表中记录的条数,返回一个int类型数据 (2)查询表,返回结果为某一个对象. (3)查询表,返回结果为某一个泛型的list集合. 一.查询 ...
- ios之UIPopoverController
UIPopoverController是iPad上的iOS开发会常用到的一个组件(在iPhone设备上不允许使用),这个组件上手很简单,因为他的显示方法很少,而且参数简单,但我在使用过程中还常碰到各种 ...
- 数据库事务ACID和事务的隔离级别
借鉴:https://blog.csdn.net/zh521zh/article/details/69400053和https://blog.csdn.net/May_3/article/detail ...
- 【模板】任意模数NTT
题目描述: luogu 题解: 用$fft$水过(什么$ntt$我不知道). 众所周知,$fft$精度低,$ntt$处理范围小. 所以就有了任意模数ntt神奇$fft$! 意思是这样的.比如我要算$F ...
- Linux菜鸟起飞之路【三】Linux常用命令
一.Linux命令的基本格式 命令 [选项] [参数] a)命令:就是告诉操作系统要做什么 b)选项:说明命令的运行方式,有的会改变命令的功能,选项通常以“-”开始 c)参数:说明命令的操作对象,如文 ...