Shell变量

一)全局环境变量

全局变量对于定义它的shell和其子shell都是可见的,但如果生成它的shell被终止,全局变量也就消失了。另外全局变量会被子shell的同名变量覆盖。

#定义一个全局变量
export a="I want break free"
#或者
b="Sunday Morning"
export b
#删除一个全局变量
unset a

二)局部环境变量

局部环境变量只能在定义它们的进程中可见。

#注意变量名、等号、和值之间是没有空格的
c="Live Forever"
unset c

区别全局环境变量和局部环境变量其实我们只需要记住:全局环境变量作用范围多了个字shell而已。

另外关于脚本中的变量,按局部变量方式定义的在整个其范围是整个脚本文件,包括你在方法中定义的变量。要产生一个"块级作用域"的变量需要在变量定义时加上local

local d="Lucy in the sky"

三)变量的持久化

Linux下所有用户要使用的环境变量:

方案一:将变量放入/etc/profile当中--------致命缺陷:如果升级Linux系统/etc/profile文件会被更新,设置的变量不复存在。

方案二:在/etc/profile.d目录中创建一个以.sh结尾的文件,写入变量。推荐此方法。

个人用户要使用的环境变量:

放入:~/.bashrc文件

四)数组变量

#定义
array=(one tow three four)
#使用
echo ${array[0]}
#three
echo ${array[*]}
#one tow three four
#删除
unset array[1]
unset array[*]

五)特殊变量

1)位置参数变量

$0--------------------------------可获取当前脚本文件名,如果执行脚本时包含路径,得到的值时路径

$n---------------------------------n为数字,当n超过9时必须采用${10}形式。获取执行脚本的第n个参数

$#--------------------------------当前执行的Shell所接参数个数

$*---------------------------------获取当前脚本的所有参数,交双引号时相当于"$1 $2 $3"

$@-------------------------------不加引号时功能和不加引号的$*一样,加引号时等同于 "$1" "$2" "$3"

2)进程中的特殊状态变量

$?--------------------------------可获取上个指令执行后的返回值

$$--------------------------------执行shell脚本的进程号

六)变量的处理

1.系统内置命令

1)echo:在屏幕上输出变量  命令格式 echo args  其中arges可以是变量和字符串组合

2)eval:

命令格式:eval args

功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令。

3)exec:

命令格式: exec 命令参数

功能:在不创建新的子进程前提下,转去执行指定的命令,指定命令执行完毕后,终结该进程。

(exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现有环境都将会被清除。exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境)

4)read:

命令格式: read  [参数] [变量名](该变量不能为特殊变量)
功能:从标准输入读取字符串等信息,传给shell内部定义的变量。

read -t 10 -p 'Pls input the num: ' num

5)shilft:

命令格式:shilft—Shilft positional parameters

功能:在程序中每使用一次shilft语句,都会使所有位置参数向左移动一个位置,最左边的变量被删除。

6)exit:

退出shell,可选定一个数字作为返回值。

2.处理变量内容

转载于:https://www.cnblogs.com/Shadowplay/p/8310027.html

Shell脚本笔记(二)Shell变量相关推荐

  1. Linux shell脚本编程(二)

    Linux shell脚本编程(二) -------------------------------------------------------------------- 注:如果你对python ...

  2. linux之基础shell脚本编程1 基础变量赋值

    本章主要介绍函数的基础,变量赋值,逻辑运算,条件表达式,测试 linux之基础shell脚本编程1  基础变量赋值 linux之基础shell脚本编程2 if语句循环判断 linux之基础shell脚 ...

  3. Shell脚本基础 、 使用变量 、 条件测试及选择 、 列表式循环案例

    Shell脚本基础 . 使用变量 . 条件测试及选择 . 列表式循环案例 1 案例1:Shell脚本的编写及测试 1.1 问题 1.2 方案 1.3 步骤 2 案例2:重定向输出的应用 2.1 问题 ...

  4. 【跟晓月学shell脚本】掌握shell脚本变量实战案例

    前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...

  5. 【跟晓月学shell脚本】掌握shell脚本变量原理及概念

    前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...

  6. shell脚本中的特殊变量与if条件测试

    1.特殊变量 实际工作中我们不可避免的遇到一些xxxx.sh脚本文件,实际阅读shell脚本代码时经常会遇到很多特殊变量(例如:$0.$n.$#.$@.$*.$?.$$等),我们常常会被这些特殊符号折 ...

  7. shell脚本中特定符合变量的含义

    shell脚本中特定符合变量的含义: $#   传递到脚本的参数个数 $*    以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$    脚本运行的当前进程PID号 ...

  8. shell脚本实战-使用shell进行数学运算

    前言 上篇文章我们探讨了shell脚本的基础和变量, 在学习变量的时候我们探讨了环境变量和用户自定义变量,以及一些特殊的用法.无论使用哪种语言都少不了进行算术操作,今天我们来看看如何使用shell脚本 ...

  9. php shell脚本怎么写,Shell脚本编程入门

    一.什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do tou ...

  10. 吴恩达《机器学习》学习笔记二——单变量线性回归

    吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...

最新文章

  1. Intelij IDEA管理git之远程代码冲突解决方案
  2. 汇编 debug调试没有执行对应文件源码指令---》失灵---》正确使用debug第一步
  3. linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
  4. python的科学计算库总结
  5. GO语言的进阶之路-Golang高级数据结构定义
  6. 5.Struts2配置形式,覆盖
  7. 小程序canvas转base64方法 使用upng库 亲测没问题
  8. 中国主要水系、河流、湖泊数据矢量数据(shp格式)下载地址
  9. 原来这些手机技巧这么好用!以前还不知道,今天领教了
  10. 如何将php网页打印成pdf,新技能!如何把网页打印成pdf文件?
  11. 矩阵操作(转置、相加、相乘)
  12. Java面试智力题逻辑题汇总2021
  13. 浏览器主页被劫持篡改了怎么办
  14. OPA Gatekeeper 策略入门
  15. Hbuilder x css样式编写无提醒
  16. cmd 连接 远程数据库
  17. 2022年最新Upwork注册申请教程
  18. C语言---char *与const char *
  19. Windows/Linux获取Mac地址和CPU序列号实现
  20. putty软件下载和教程

热门文章

  1. R语言不止可以做数据分析,还可以变着方法玩出花
  2. 上帝手中的骰子——无所不能的贝叶斯(上篇)
  3. -rw-r--r--@ what's @
  4. Winform开发之SqlCommand常用属性和方法
  5. Java中Dom解析xml文档
  6. Linux编程中 #define _XOPEN_SOURCE的作用
  7. Thinking in Java Chapter 14
  8. [学习笔记] JQuery datepicker用法 [转]
  9. Visual Sourcesafe Internet使用备忘
  10. SharePoint 2010的Form认证的用户注册功能