[9-13]Shell系列2——变量基础

本文旨在复习shell变量定义、使用变量、删除变量、只读变量以及变量类型、特殊变量实例

知识储备


  • 变量本质上是内存空间中的一块指定区域,其数据内容会发生变化;
  • 变量名本质是个指针,指向这个数据变化的内存空间,那么在命令执行或者操作时,只需要通过变量名,就能够随时调用那个变化的数据,很方便
  • Shell脚本中变量和大多编程语言一样,有全局的,也有局部的[比如作用于一个function函数]

  • 值得一提的是,shell是弱类型编程语言

    • 弱类型:变量无需事先申明,直接可用[为空]
    • 强类型:变量使用前,必须规定变量名,存储格式[数据类型],才能够使用

定义变量和重定义


  • 定义格式: Var_Name=Value
  • 变量名和等号之间不能有空格
  • 变量名遵循这样的格式^[_a-zA-Z] 中间部分[_a-zA-Z0-9]*
  • 变量名不能使用标点、关键字
  • 在bash环境中,可以使用set定义变量,但是在shell脚本中 set命令有特殊用法!

例:定义一个变量并调用


1
2
3
4
5


#!/bin/bash

var1="I like"
_var2="computer."
echo "$var1 $_var2"

● 网上有人说shell脚本变量名不能以下划线_开头,这个例子说明了可以的!

● 重定义变量本质上和定义变量没区别,只不过会覆盖而已,不做演示


1
2
3
4


#!/bin/bash
var="1 yuan qian!"
var="10 yuan qian!"
echo $var

使用变量


  • 直接使用($Var_Name)即可,如:

1
2


var="I like fruit"
echo "$var"

  • 还可以使用 ${Var_Name},效果相同,但有时候只能使用这种用法!

1
2


var="I like fruit"
echo "${var}s."

  • 当要变量直接添加字符串时,需要使用{},否则会解析变量名错误。建议都使用这种用法!

删除变量



删除变量来得简单多了

  • unset Var_Name

只读变量



有些变量一旦定义不希望被更改,作为只读存在,可以使用read only修饰


1
2
3
4
5
6


#!/bin/bash

mylove="Mageedu"
readonly mylove
mylove="NiaoGe"
echo "$mylove"

变量类型



运行shell时,会同时存在三种变量:

● 局部变量

局部变量在脚本或命令中定义,仅在当前shell实例中有效。

● 环境变量

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

● shell变量

shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

特殊变量实例与传递



特殊变量列表在[9-13]Shell系列1——基本概念 一文已经列出,这里做一个实战演示


1
2
3
4
5
6
7
8


#!/bin/bash

echo "Shell Script Filename ---> $0"
echo "Current process PID   ---> $$"
echo "The number of Parameter -> $#"
echo "First Parameter       ---> $1"
echo "The all Parameter     ---> $*"
echo "Last Command State    ---> $?"

● 这个例子简要得地说明了特殊参数的用法,这里在脚本执行时的1 2 3 4 5是传递的参数,下文我会讲到

● 命令结果有2种:命令执行结果 和 命令执行状态结果

● 引用所有传递的参数可以用$*和[email protected],还是有一点区别的

不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。

但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"[email protected]" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

实现代码


1
2
3
4
5
6
7
8
9
10
11
12
13


#!/bin/bash

echo "\[email protected] like this -->"
for var in "[email protected]"
do
    echo "$var"
done

echo "\$* like this -->"
for var in "$*"
do
    echo "$var"
done

时间: 2024-10-11 13:07:11

[9-13]Shell系列2——变量基础的相关文章

【shell脚本】 变量基础学习整理

1.linux系统环境 echo 'echo /etc/profile ' >> /etc/profile echo 'echo /etc/bashrc' >> /etc/bashrc echo 'echo /root/.bashrc ' >> /root/.bashrc echo 'echo /root/.bash_profile ' >> /root/.bash_profile vi /etc/profile #在文件的最后插入 export VAR9=

[9-13]Shell系列7——函数及参数传递

本文旨在复习shell函数作用.定义.嵌套.删除.终端调用.返回值.参数传递 知识储备 函数:即Functions,把一组实现通用功能的独立的代码模块[通常里面是变量,可变的参数组成]封装在一起,并给予命名:后续用到时,可直接通过给定函数名来调用整体代码 函数作用:<1>代码重用 <2>模块化编程 函数使用:<1>先定义:编写函数代码 <2>后调用:调用函数,按需传递参数[非必需] 函数定义及调用 函数定义格式主要有2种,如下: 12345678910111

[笔记]shell变量基础

变量命名:使用英文,数字及 _ (下划线)组成,开头不能是数字,长度无限制,严格区分大小写 变量设置:变量名=变量值     注意:等号两边无空格       可以把变量值用单引号或双引号括起来       不支持所有中文符号(包括中文的单双引号)       可使用反单引号(Tab键上方) `COMMAND` 或$(COMMAND)来取得COMMAND的输出       使用"\"转义可将特殊字符如\ $ ! 空格符 等变为普通字符       可在script中添加'shopt -

Linux Shell系列教程之(三)Shell变量

本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量相关知识. 为使Shell编程更有效,系统提供了一些Shell变量.Shell变量可以保存诸如路径名.文件名或者一个数字这样的变量名. Shell将其中任何设置都看做文本字符串.有两种变量,本地和环境.严格地说可以有 4种,但其余两种是只读的,可以认为是特殊变量,它用于向Shell脚本传递参数. 定

Shell变量基础详解

一.变量简介 变量是暂时存储数据的地方及数据标记,所存储的数据存在于内存空间中,通过正确地调用内存空间中变量的名字就可以取出与变量对应的数据.使用变量的最大好处就是使程序开发更为方便,当然,在编程中使用变量也是必须的.否则就很难完成相关的工作. 变量赋值的方式:先写变量名称,紧接着就是"=",最后是值."="号前后不允许有空格.一般情况下,定义变量时,需要给变量的值带双引号,以防止出错,特别是当值的内容中有空格时,必须带双引号. 二.变量的类型 变量可分为两大类:

[9-13]Shell系列1——基本概念

本文旨在复习Shell基本概念.编程模型.变量类型.脚本规范.语言结构.脚本执行方式 Linux层次结构和Shell基本概念 Linux层次结构大致分为这么几层 ● 请注意:基本上各层次都屏蔽了底层差异性,既能管理调用底层,同时又为上一层[或多层]服务 ● Hardware Platform:硬件层有各种各样不同厂家的各种硬件接口,对上层提供服务 ● OS Kernel:内核层,屏蔽底层硬件差异,提供核心功能,调度资源运行指令程序,上层可以进行System Call ● LIB:库文件,Kern

shell脚本编程之基础篇(二)

shell脚本编程之基础篇(二) ============================================================================== 概述: ============================================================================== 退出状态 ★进程使用退出状态来报告成功或失败 ◆0 代表成功,1-255代表失败 ◆$? 变量保存最近的命令退出状态 (查看:echo $?)

LNMP系列网站零基础开发记录(二)

[目录] 扯淡吹逼之开发前奏 Django 开发环境搭建及配置 Bootstrap 前端页面开发 Django app开发 Django 站点管理 Python 简易爬虫开发 Nginx&uWSGI 服务器配置 ...  二.Django 开发环境搭建及配置  1. 开发环境 开发环境依然是Windows,可以开发的django的IDE较多,我只使用过以下几种 Eclipse  免费IDE,需要下载pydev插件,代码提示功能不错 Visual Studio 需要下载PTVS,结合了VS强大的编

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下

8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 # 8.10 shell 特殊符_cut命令 --- - * 任意个任意字符 - ?任意一个字符 -  井号#注释字符  写命令的时候前面加一个#,那么这条命令就不生效,包括shell脚本里面也是,前面加个#表示这一行不生效,可以加一些注释说明的文字 ``` <[email protected] ~># #ls a.txt <[email