学习bash——变量

一、什么是变量

二、变量内容的设置

关键词:变量,变量名称,变量的内容(我默认将变量与变量名称等价)

方法:变量=变量的内容

注:一个变量未被设置内容时,默认的内容是“空”的。

【变量的设置规则】

  1. 变量与变量的内容以一个等号“=”来连接
  2. 等号两边不能直接接空格符
  3. 变量名称只能是英文字母与数字,并且开头字符不能是数字
  4. 变量内容若有空格符可使用双引号(特殊字符仍是特殊字符)或单引号(特殊字符仅为纯文本)将变量内容结合起来
  5. 可用转移字符“\”将特殊符号(如[Enter]、$、\、空格符、!等)变成一般字符
  6. 在命令中还需要引用其他命令时,可使用“$(命令)”或“``命令`”
  7. 增加变量内容时,可用“"$变量名称"”或“${变量}”累加内容
  8. 取消变量的方法为“unset 变量名称”

【示例区】

设置变量内容:path=${PATH}    //将PATH内容赋给变量path

双引号保留特殊符号:var="lang is $LANG"      //打印结果为lang is en_US

单引号仅为一般字符:var=‘lang is $LANG‘      //打印结果为lang is $LANG

规则6的示例:version=$(uname -r)          //命令uname -r打印内核版本

追加变量内容:PATH="$PATH":/home/bin       //红色部分为追加内容

三、显示变量的内容

关键词:变量的内容

命令:echo

注意点:变量的内容在被显示时,变量前面必须要加上字符“$”才行

ps:请在屏幕上显示出你的环境变量PATH。

法一:echo $PATH

法二:echo ${PATH}

四、环境变量

摘要:查看环境变量、常用环境变量、PS1、$、?

1. 查看环境变量

  命令:env    //列出目前shell环境下的所有环境变量与内容

2. 常见环境变量

HOME:HOME=/home/liuyu

解释:HOME代表用户的主文件夹。我们使用命令“cd ~”或“cd”回到用户主文件夹,就是使用这个变量,有很多程序都可能会用到这个变量的值。

SHELL:SHELL=/bin/bash

解释:它告知我们目前这个环境使用的shell是哪个程序?Linux是默认使用/bin/bash的。

PATH:PATH=/home/liuyu/bin:/home/liuyu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

解释:就是执行文件查找的路径,目录与目录中间以冒号分隔,由于文件的查找是依序由PATH的变量内的目录来查询,所以目录的顺序也是很重要的。

MAIL:MAIL=/var/spool/mail/liuyu

解释:当我们使用mail这个命令在收信时系统会去读取的邮件信息文件。

HISTSIZE:HISTSIZE=1000

解释:这个与“历史命令”有关,即文件~/.bash_history可以记录命令的条数

3. PS1(提示符的设置)

  PS1就是我们的“命令提示符”。

  当我们每次按下[Enter]按键去执行某个命令后,最后要再次出现提示符时,就会主动去读取这个变量值了。

  PS1=‘ [\[email protected]\h \W]\$ ‘    //PS1的内容是一些特殊符号,这些特殊符号可以显示不同的信息

【符号意义】

  • \u:目前用户的账号名称
  • \h:仅取主机在第一个小数点之前的名字
  • \W:利用basename函数取得工作目录名称,所以仅会列出最后一个目录名
  • \w:完整的工作目录名称,由根目录写起的目录名称。但主文件夹会以~替代
  • \$:提示符,如果是root时,提示符为#,否则就是$
  • \@:显示时间,为12小时格式的“am/pm”样式
  • \#:执行的第几个命令

4. $(关于本shell的PID)

  $本身也是个变量。这个代表的是目前这个shell的线程代号,即是所谓的PID。

  命令:echo $$        //显示我们的shell的PID

5. ?(关于上个执行命令的回传码)

  ?也是一个变量。

  这个变量是上一个执行的命令所回传的值。

  当我们执行某些命令时,这些命令都会回传一个执行后的代码。

  成功执行,则回传一个0值;失败执行,则回传任意非0值。

五、语系变量

关键词:语系,语系变量

1. 查看我们的Linux支持的语系

  命令:locale -a

2. 常见语系

  zh_CN.utf8、en_US.utf8、C

3.  查看各个环境下使用的编码

  命令:locale

  显示结果:

LANG=zh_CN.UTF-8           //主语言的环境
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"        //字符(文字)辨识的编码
LC_NUMERIC="zh_CN.UTF-8"       //数字系统的显示信息
LC_TIME="zh_CN.UTF-8"         //时间系统的显示数据
LC_COLLATE="zh_CN.UTF-8"       //字符串的比较与排序等
LC_MONETARY="zh_CN.UTF-8"      //币值格式的显示等
LC_MESSAGES="zh_CN.UTF-8"      //信息显示的内容,如菜单、错误信息等
LC_ALL=                  //整体语系的环境

  上面显示出许多语系变量及其变量内容,我们可以自定义每个语系变量的内容,如果有语系变量未设置,那么这些语系变量将会被LANG或LC_ALL这两个变量所替代。

4. 使语系变量内容的设置永久有效

  在命令行设置语系变量的内容仅在此次生效,如果要永久有效,我们就需要修改相应的配置文件。

  整体系统默认的语系定义:/etc/sysconfig/i18n

六、read

  之前我们的变量内容都是直接在命令行直接设置的,现在我们要让用户能够经由键盘输入变量的内容。

  命令:read [-pt] 变量    //-p后面接提示符,-t后面接等待的秒数

七、declare

  bash中变量的默认类型为字符串,我们可以使用declare声明变量的类型。

  命令:declare [-aixr] 变量  //-r将变量设置为readonly类型(不可被更改内容)

八、数组(array)变量类型

  设置方式:数组名[index]=content

  读取数组:${数组}

ps:设置var[1]~var[3]的变量,并打印内容

var[1]="small min"
var[2]="big min"
var[3]="nice min"
echo "${var[1]}, ${var[2]}, ${var[3]}"

  

九、变量内容的删除、替代与替换

  之前关于变量内容的设置都指整个变量内容,我们就要讲讲对变量的内容进行微调。

  先抛出一张表:

变量设置方式 说明
${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
${变量%%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

附录

set:列出所有的变量及其内容

declare:同set

ulimit:与文件系统及程序的限制关系

时间: 2024-08-30 16:54:46

学习bash——变量的相关文章

Linux学习 - Bash变量

一.用户自定义变量(本地名) 用户自定义变量只有在当前的shell中生效 1 定义变量 name="zheng huiwei" aa=123 2 变量叠加 aa="$aa"456 aa=${aa}789 3 变量调用 echo $name echo $aa 4 变量查看 set 5 变量删除 unset name unset aa 二.环境变量 保存的是和系统操作环境相关的数据, 环境变量会在当前shell和这个shell的所有子shell当中生效,如果把环境变量写

Shell学习之Bash变量详解(二)

Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这种变量中主要保存和系统操作环境相关的数据. 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的. 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的. Bash变量注意点 1.变量名称可以由字母.数字和下划线组成,但是不能以数字

bash变量--学习笔记

十二.bash变量                变量(一段有名称的内存空间)   变量名(这段内存空间的名称)  向变量中存储数据的过程,称为赋值操作:  变量的类型: 整型    字符型    变量: 强变量:使用之前必须事先予以声明:必须声明变量类型   弱变量:在使用之前无需生命,不需要指明变量类型    注意:bash变量不需要定义变量类型,属于弱变量  变量的赋值方法:  VARNAME=VALUE     其含义:将某数值(VALUE)通过赋值操作(=)存储于特定的内存空间中(VA

第十一章、认识与学习 BASH

1. 认识 BASH 这个 Shell 1.1 硬件.核心与 Shell 1.2 为何要学文字接口的 shell 1.3 系统的合法 shell 与 /etc/shells 功能 1.4 Bash shell 的功能 1.5 Bash shell 的内建命令: type 1.6 命令的下达 2. Shell 的变量功能 2.1 什么是变量? 2.2 变量的取用与配置:echo, 变量配置守则, unset 2.3 环境变量的功能: env 与常见环境变量说明, set, export 2.4 影

《学习bash》笔记--进程处理

1.进程ID和作业编号 当通过附加&号后运行命令时,shell会响应如下: $ ls & [1] 3318 其中[1]是作业号,3318是进程号. 一个后台进程完成时,shell会给出作业编号信息,如下: [1]+  Done                    ls --color=auto 如果作业以非0状态退出时,shell指出其退出状态. 2.作业控制 作业编号可以使它们在shell命令中进行作业控制.一旦作业在后台运行,你可以让它一直运行,或把它放到前台,或向其发送信号. 2.

《学习bash》笔记--调试shell程序

在shell中,最简单的调试助手时输出语句echo,可以通过把许多echo语句放到代码中进行调试,但必须花费足够的时间以定位 要查看的信息.可能必须通过许多的输出才能发现要查找的信息. 1.set选项 最基本的时set -o命令选项,当运行脚本时,这些选项可以用在命令行上,如下表所示: set -o选项      命令行选项      行为 noexec            -n                     不运行命令,值检查语法错误 verbose           -v  

《学习bash》笔记--基础shell编程

1.shell脚本和函数 脚本是包含shell命令的文件,它是一个shell程序,有三种方式运行它们: 一是键入source scriptname,使得脚本的命令被读取并运行,就好像键入它们一样. 二是运行bash scriptname,打开一个子shell来读取并执行脚本文件中命令.该脚本文件可以无"执行权限". 三是使用./scriptname,打开一个子shell读取并执行脚本文件中的命令,该脚本需要"执行权限". 1.1.函数 函数是一种脚本内脚本,你使用它

《学习bash》笔记--定制用户环境

1. .bash_profile..bash_logout和.bashrc文件 当用户和退出一个新的shell时,文件.bash_profile..bash_logout和.bashrc文件被bash所读取.在用户每次登陆到系统时, .bash_profile文件被读取,可以对.bash_profile文件进行编辑,但是知道退出并在此登录后,该文件才会被重新读取,你编辑 的新内容才会生效,或者使用source命令: source ./bash_profile bash允许有.bash_profi

第六章 shell学习之变量和引用

变量 本地变量:类似于局部变量,只在当前shell进程有效 环境变量:适用于所有登录进程所产生的子进程 位置参数:用于向shell脚本传递参数,只读 变量替换和赋值 引用变量值就称为变量替换,$就为变量替换符号,如a为变量名则$a或${a}为变量值 将值赋给某个变量名就称为变量赋值,格式:variable=value或${ variable=value },如值中包含空格则必须用"" 清除变量的值: unset 变量名 设置只读变量: variable=value readonly v