Shell脚本笔记(二)Shell变量
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变量相关推荐
- Linux shell脚本编程(二)
Linux shell脚本编程(二) -------------------------------------------------------------------- 注:如果你对python ...
- linux之基础shell脚本编程1 基础变量赋值
本章主要介绍函数的基础,变量赋值,逻辑运算,条件表达式,测试 linux之基础shell脚本编程1 基础变量赋值 linux之基础shell脚本编程2 if语句循环判断 linux之基础shell脚 ...
- Shell脚本基础 、 使用变量 、 条件测试及选择 、 列表式循环案例
Shell脚本基础 . 使用变量 . 条件测试及选择 . 列表式循环案例 1 案例1:Shell脚本的编写及测试 1.1 问题 1.2 方案 1.3 步骤 2 案例2:重定向输出的应用 2.1 问题 ...
- 【跟晓月学shell脚本】掌握shell脚本变量实战案例
前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...
- 【跟晓月学shell脚本】掌握shell脚本变量原理及概念
前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...
- shell脚本中的特殊变量与if条件测试
1.特殊变量 实际工作中我们不可避免的遇到一些xxxx.sh脚本文件,实际阅读shell脚本代码时经常会遇到很多特殊变量(例如:$0.$n.$#.$@.$*.$?.$$等),我们常常会被这些特殊符号折 ...
- shell脚本中特定符合变量的含义
shell脚本中特定符合变量的含义: $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个 $$ 脚本运行的当前进程PID号 ...
- shell脚本实战-使用shell进行数学运算
前言 上篇文章我们探讨了shell脚本的基础和变量, 在学习变量的时候我们探讨了环境变量和用户自定义变量,以及一些特殊的用法.无论使用哪种语言都少不了进行算术操作,今天我们来看看如何使用shell脚本 ...
- php shell脚本怎么写,Shell脚本编程入门
一.什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do tou ...
- 吴恩达《机器学习》学习笔记二——单变量线性回归
吴恩达<机器学习>学习笔记二--单变量线性回归 一. 模型描述 二. 代价函数 1.代价函数和目标函数的引出 2.代价函数的理解(单变量) 3.代价函数的理解(两个参数) 三. 梯度下降- ...
最新文章
- Intelij IDEA管理git之远程代码冲突解决方案
- 汇编 debug调试没有执行对应文件源码指令---》失灵---》正确使用debug第一步
- linux系统sql语句报错_在linux下写的mysql无法插入,sql语句在复制中变'脏'了.
- python的科学计算库总结
- GO语言的进阶之路-Golang高级数据结构定义
- 5.Struts2配置形式,覆盖
- 小程序canvas转base64方法 使用upng库 亲测没问题
- 中国主要水系、河流、湖泊数据矢量数据(shp格式)下载地址
- 原来这些手机技巧这么好用!以前还不知道,今天领教了
- 如何将php网页打印成pdf,新技能!如何把网页打印成pdf文件?
- 矩阵操作(转置、相加、相乘)
- Java面试智力题逻辑题汇总2021
- 浏览器主页被劫持篡改了怎么办
- OPA Gatekeeper 策略入门
- Hbuilder x css样式编写无提醒
- cmd 连接 远程数据库
- 2022年最新Upwork注册申请教程
- C语言---char *与const char *
- Windows/Linux获取Mac地址和CPU序列号实现
- putty软件下载和教程
热门文章
- R语言不止可以做数据分析,还可以变着方法玩出花
- 上帝手中的骰子——无所不能的贝叶斯(上篇)
- -rw-r--r--@ what's @
- Winform开发之SqlCommand常用属性和方法
- Java中Dom解析xml文档
- Linux编程中 #define _XOPEN_SOURCE的作用
- Thinking in Java Chapter 14
- [学习笔记] JQuery datepicker用法 [转]
- Visual Sourcesafe Internet使用备忘
- SharePoint 2010的Form认证的用户注册功能