Linux之bash的变量
1. 变量的显示,echo
echo $变量 或 echo ${变量}
eg. echo $HOME 或 echo ${HOME}
2. 变量的设置
变量的设置规则:
(1)变量与变量内容以一个等号“=”来连接
eg. myname=name
(2)等号两边不能直接接空格符
(3)变量名称只能是英文字母与数字,但不能以数字开头
(4)变量内容若有空格符,可使用双引号或单引号将变量内容结合起来
eg. myname="my name is XX"
需要注意的是:
1)双引号内的特殊字符,如$等,可以保有原本的特性
eg. var="lang is $LANG"(其中,$LANG表示变量LANG的值)
则“echo $var”可得“lang is zh_CN.UTF-8”
2)单引号内的特殊字符则仅为一般字符
eg. var=‘lang is $LANG’(其中,$LANG表示变量LANG的值)
则“echo $var”可得“lang is $LANG”
(5)可用转义字符“\”将特殊符号(eg.【Enter】、$、\、空格符、!等)变成一般字符
(6)若变量需要在其他子进程执行,则需要以export来使变量变成环境变量
eg. export PATH
(7)通常,大写字符为系统默认变量,自行设置变量可以使用小写字符
(8)取消变量的方法为,unset 变量名称
eg. unset myname
(9)在一串命令中,还需要通过其他命令提供信息
eg. `命令` 或 $(命令)
注意,第一个符号为反单引号
3. 环境变量,env 或 export
(1)HOME,代表用户的主文件夹
(2)SHELL,告知我们目前这个环境使用的shell是哪个程序,Linux默认使用/bin/bash的
(3)HISTSIZE,“历史命令”,是我们曾经执行过的命令可以被系统记录下来,而记录的“条数”则是由这个值来设置的
(4)MAIL,在收信时系统会去读取的邮件信箱文件
(5)PATH,执行文件查找的路径,目录与目录之间以冒号“:”分隔,由于文件的查找是依据顺序按照PATH变量内的目录来查询的,所以PATH中目录的顺序也是十分重要的
(6)LANG,重要!!!语系数据,中文编码通常是zh_CN.gb2312或zh_CN.UTF-8
(7)RANDOM,随机数。我们可以通过这个随机数文件相关的变量($RANDOM)来随机去的随机数量。在BASH环境下,RANDOM的取值范围为0~32767
4. 查看所有变量(包括环境变量与自定义变量),set
5. 查看Linux到底支持多少语系,locale
6. 声明变量的类型,declare 或 typeset
declare [-aixr] valiable
(1)-a,将变量valiable定义为数组类型
(2)-i,将变量valiable定义为整数数字类型
(3)-x,与export一样,将变量valiable定义为环境变量
(4)-r,将变量valiable设置成为readonly,不可被更改内容,也不能重设
7. 变量内容的删除、替换
变量设置方式 | 说明 |
${变量#关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除 |
${变量##关键字} | 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除 |
${变量%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除 |
${变量%%关键字} | 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除 |
${变量/旧字符串/新字符串} | 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换 |
${变量//旧字符串/新字符串} | 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换 |
8. 变量的测试与内容替换
判断某个变量是否存在,减号“-”
eg. username=${username-root}
(1)若变量username不存在或为空时,“echo $username”的结果为root
(2)若变量username存在且不为空时,“echo $username”的结果为username的值
注,如果要求,在username未设置或为空字符串时,都将username内容设置为root
→ 则有,username=${username:-root}
若只是想知道变量是否存在,如果不存在,就告知“notexit”,此时就可以用“?”
eg. username=${username?notexit}
(1)若变量username不存在,“echo $username”的结果为notexit
(2)若变量username存在,则“echo $username”的结果为username的值
Linux之bash的变量的更多相关文章
- [转帖]linux bash环境变量简单总结
linux bash环境变量简单总结 来源链接:http://www.178linux.com/8005 原创文章,如有转载,请注明原文地址 需要简单学习一下. 其实 我都是直接放一个 .sh文件到 ...
- Linux系列教程(二十二)——Linux的bash变量
上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的.本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫. 1.什么是变量 变量是计算机内存的单元,其中存放的值可以改变. 当 ...
- Linux下Bash入门学习笔记
学习好shell编程是很有用的,可以使用shell脚本轻巧地完成有趣的工作. 本文地址:http://www.cnblogs.com/yhLinux/p/4047516.html 1. Bash实例, ...
- Linux里设置环境变量的方法(export PATH)
1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH ...
- linux下修改path变量(转载)
比如要把/etc/apache/bin目录添加到PATH中 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,每当登出PATH就会恢复 2.#vi /etc/profile 在 ...
- 【转】Linux 技巧: Bash 参数和参数扩展
重点看下清单7 现在,很多 Linux® 和 UNIX® 系统上都有 bash shell,它是 Linux 上常见的默认 shell.通过本文,您将了解到如何在 bash 脚本中处理参数和选项,以及 ...
- [转]在Linux里设置环境变量的方法
在Linux里设置环境变量的方法(export PATH) 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/a ...
- [linux服务器][bash]让切换目录更方便
本文转载:[linux服务器][bash]让切换目录更方便: 一,为何要使用这几个命令? 可能大家会有疑问,为何要使用这几个命令, 难道用cd不就可以切换目录了吗? 没错,使用cd就可以切 ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
随机推荐
- Python爬取中文页面的时候出现的乱码问题(续)
我在上一篇博客中说明了在爬取数据的时候,把数据写入到文件的乱码问题 在这一篇里面我做一个总结: 1.首先应该看一个案例 我把数据写在.py文件中: #coding:utf-8 s = 'hehe测试中 ...
- vscode-php代码提升及函数跳转
安装插件,php intellisense 安装后还要配置一下PHP的运行路径 打开扩展 输入 PHP IntelliSense 安装 文件 - 首选项 - 设置 - 扩展 - ...
- jdk环境配置(windows版)
JAVA_HOME C:\Program Files\Java\jdk1.7.0_80 Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH .;%J ...
- java执行命令行,以及解决卡死问题
java可以执行本地命令行,但是有一个坑,命令执行后,已经执行完毕,但是卡死不返回,这是因为: 命令会返回两个输出流,正确的返回流,和错误的返回流 一般程序的做法是先循环读正确的返回流,再读错误的返回 ...
- python调用c++类方法(2)
testpy.cpp: #include<iostream> #include<vector> struct point{ float pointx; float pointy ...
- Flink的基本概念
Stream.Transformation.Operator 用户实现的Flink程序是由Stream和Transformation这两个基本构建块组成,其中Stream是一个中间结果数据,而Tran ...
- C# 文件打开对话框 图片fitter
"All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;*.png;*.tif;*.tiff|""Windows Bitmap(* ...
- 13 oracle数据库坏块-逻辑坏块(模拟/修复)
13 oracle数据库坏块-逻辑坏块 逻辑数据坏块的场景1)oracle bug也可能导致逻辑坏块的产生. 特别是parallel dml. 例如:Bug 5621677 Logical corru ...
- 【Qt开发】事件循环与线程 一
事件循环与线程 一 初次读到这篇文章,译者感觉如沐春风,深刻体会到原文作者是花了很大功夫来写这篇文章的,文章深入浅出,相信仔细读完原文或下面译文的读者一定会有收获. 由于原文很长,原文作者的行文思路是 ...
- GCC 编译参数
-s 这个参数会把符号表从最终的可执行文件中删除.没有符号表,你就不能用gdb调试了,但是程序会更小 -O0 不做任何优化,这是默认的编译选项 -c 只编译不链接,产生.o文件,就是obj文件,不产生 ...