Shell Step by Step (2) —— Variable

3.变量声明

readonly 只读

export 修改或打印环境变量

export -p 显示当前环境

【注】强烈注意,在赋值的前后一定不要有空格.

# echo 控制字符颜色

[email protected]:/home/kallen/TEST/Shell# echo -e ‘\e[1;31mHello,World\e[0m‘

Hello,World

背景色: 0
透明(使用终端颜色), 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青绿,47白(灰)

前景色
:  30 黑 31 红, 32绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)

高亮度: 高亮是1,不高亮是0。注意m后面紧跟字符串。

-e
用来开启echo中的转义

\e
或 \033 来输出Esc符号

设置颜色的格式: \e[背景色;前景色;高亮m

恢复默认为
\e[0m

高亮是1,不高亮是0

注意m后面紧跟字符串

【注意】 以"-"开头的文件名在使用"-"作为重定向操作符的时候,可能会产生问题.

应该写一个脚本来检查这个问题,并给这个文件加上合适的前缀.如:

./-FILENAME, $PWD/-FILENAME,或$PATHNAME/-FILENAME.

如果变量的值以"-"开头,可能也会引起问题.

1 var="-n"

2 echo $var

3 #具有"echo -n"的效果了,这样什么都不会输出的.

~+    当前工作目录,相当于$PWD 变量.

~-     之前的工作目录,相当于$OLDPWD 内部变量.

=~    用于正则表达式,这个操作将在正则表达式匹配部分讲解,只有version3 才支持.

^      行首,正则表达式中表示行首. "^"定位到行首.

变量赋值方式——

(1) 直接赋值:=

(2) Let赋值: let a=16+5

Bash
并不对变量区分"类型".本质上,Bash 变量都是字符串. 但是依赖于上下文,Bash 也允许比较操作和算术操作.

决定这些的关键因素就是,变量中的值是否只有数字.

a.位置参数

{}标记法是一种很好的使用位置参数的方法.这也需要间接引用

1 args=$# # 位置参数的个数

2 lastarg=${!args}

3 # 或: lastarg=${!#}

4 # 注意 lastarg=${!$#} 将报错

时间: 2024-07-31 19:57:47

Shell Step by Step (2) —— Variable的相关文章

Shell Step by Step (3) —— Stdin & if

4.输入输出 #! /bin/bash # Read users input and then get his name read -p "Please input your first name: " firstName read -p "Please input your last name: " lastName echo -e "Your full name is: $firstName $lastName" read使用方法: read

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures

C# 2012 step by step 学习笔记8 CHAPTER 9 Creating Value types with enumerations and Structures things about 1. Declare an enumeration type. 2. Create and use an enumeration type. 3. Declare a structure type. 4. Create and use a structure type. 5. Explain

WPF Step By Step 系列-Prism框架在项目中使用

WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Prism框架来构建基础的应用框架,并且如何来设计项目的架构和模块,下面我们就来一步步开始吧. 本文大纲 1.Prism框架下载和说明 2.Prism项目预览及简单介绍. 3.Prism框架如何在项目中使用. Prism框架下载和说明 Prism框架是针对WPF和Silverlight的MVVM框架,这

FreeSWITCH 1.2.5.3 Step by Step Install

Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y install libncurses5-dev libtiff-dev libjpeg-dev zlib1g-dev 从 Git 仓库安装: 从代码库安装能让你永远使用最新的版本: git clone git://git.freeswitch.org/freeswitch.git cd freeswitch .

精通initramfs构建step by step

http://hi.baidu.com/jonathan2004/blog/item/db7bf38aad11759ea4c2721d.html 精通initramfs构建step by step (1)--hello world 2009-12-08 19:19 一.initramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件.当内核启动时,会从这个打包文件中导出文件到内核的rootfs文件系统, 然后内核检查rootfs中是否包含有init文件,如果有则

数论之高次同余方程(Baby Step Giant Step + 拓展BSGS)

什么叫高次同余方程?说白了就是解决这样一个问题: A^x=B(mod C),求最小的x值. baby step giant step算法 题目条件:C是素数(事实上,A与C互质就可以.为什么?在BSGS算法中是要求a^m在%c条件下的逆元的,如果a.c不互质根本就没有逆元.) 如果x有解,那么0<=x<C,为什么? 我们可以回忆一下欧拉定理: 对于c是素数的情况,φ(c)=c-1 那么既然我们知道a^0=1,a^φ(c)=1(在%c的条件下).那么0~φ(c)必定是一个循环节(不一定是最小的)

Git Step by Step – (8) Git的merge和rebase

前面一篇文章中提到了"git pull"等价于"git fetch"加上"git merge",然后还提到了pull命令支持rebase模式,这篇文章就介绍一下merge和rebase之间有什么差别. 由于我们主要是想看看merge跟rebase之间的区别,这里就是用本地仓库的分支进行演示了. merge 其实在介绍分支的那篇文章中已经介绍过了一些分支merge的内容,这里就进行一些补充和总结. 下面我们基于本地一个仓库开始介绍,当前仓库的分支情

Linux Booting Process: A step by step tutorial for understanding Linux boot sequence

One of the most remarkable achievement in the history of mankind is computers. Another amazing fact about this remarkable achievement called computers is that its a collection of different electronic components, and they work together in coordination

C++开发WPF,Step by Step

示例代码 使用C++来开发WPF,主要是如何在MFC(Win32)的窗口中Host WPF的Page.下面我就做个详细的介绍. 一.创建工程, 由于MFC的Wizard会生成很多用不到的代码,所以我准备从一个空的工程开始创建一个MFC的工程. a)         打开VS2005,菜单File->New->Projects-, 左面选择Visual C++->Win32,右面选择Win32 Console Application,给工程起个名字CPlusPlus_WPF, Ok进入下一

数据库设计 Step by Step (1)——扬帆启航

引言:一直在从事数据库开发和设计工作,也看了一些书籍,算是略有心得.很久之前就想针 对关系数据库设计进行整理.总结,但因为种种原因迟迟没有动手,主要还是惰性使然.今天也算是痛下决心开始这项卓绝又令我兴奋的工作.这将是一个系列的文 章,我将以讲座式的口吻展开讨论(个人偷懒,这里的总结直接拿去公司培训新人用). 系列的第一讲我们先来回答下面几个问题 数据库是大楼的根基 大多数程序员都很急切,在了解基本需求之后希望很快的进入到编码阶段(可能只有产出代码才能反映工作量),对于数据库设计思考得比较少. 这