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,页面余下部分就可以访问 ...
随机推荐
- python在d盘,robotframework引入seleniumlibrary报错
在*** setting*** 中引入库 Library SeleniumLibrary 报错 unknown seleniumlibrary library ,try to use quic ...
- Python-DB接口规范
threadsafety 线程安全级别.threadsafety 这是一个整数, 取值范围如下: 0:不支持线程安全, 多个线程不能共享此模块 1:初级线程安全支持: 线程可以共享模块, 但不能共享连 ...
- 【转】Java重构-策略模式、状态模式、卫语句
前言 当代码中出现多重if-else语句或者switch语句时.弊端之一:如果这样的代码出现在多处,那么一旦出现需求变更,就需要把所有地方的if-else或者switch代码进行更改,要是遗漏了某一处 ...
- Bootstrap历练实例:警告样式按钮
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...
- oracle count 百万级 分页查询记要总数、总条数优化
oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...
- ios retain copy assign相关
assign: 简单赋值,不更改索引计数copy: 建立一个索引计数为1的对象,然后释放旧对象retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 Copy其实是建立了一 ...
- vue-cli3.0 生产包去除console.log
目前负责的公众号又迭代了一个版本,之前打生产包,配置总是和测试包搞混,所以使用了vue-cli3.0的环境变量来控制配置. 但是又发现了一个新问题,写代码的过程中写了很多console.log 来调试 ...
- python 发送附件
#!/usr/bin/env python # encoding: utf-8 #@author: 东哥加油! #@file: sksendmail.py #@time: 2018/8/20 13:3 ...
- 【Java_基础】java类加载过程与双亲委派机制
1.类的加载.连接和初始化 当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载.连接.初始化三个步骤来对类进行初始化.如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为 ...
- perl的bareword
perl的bareword可能被认为:label . 句柄 .函数 . 普通字符串. 上下文不同,解释器有歧义. 最好用 use strict; use warning;