当前位置: 首页 > news >正文

Linux之shell编程基础

一、变量

    变量在shell中分为:本地变量、环境变量、位置参数;

  本地变量:仅可在用户当前shell生命期的脚本中使用的变量,本地变量随着shell进程的消亡而无效,本地变量在新启动的shell中依旧无效,类似于c、c++中的局部变量的概念;

  环境变量:适用于所有登录进程所产生的子进程;

  位置参数:用于向shell脚本提供传递参数,它是只读的;

    变量是某个值的名称,引用变量值就称为:变量替换,$符号是变量替换符号,如variable是变量名,那么,$variable就是表示变量的值;

  variable=value  #切记:等号两边不能出现空格

  ${variable=value}  #同上

  示例如下:

    var1="hello world"

    var2="I say"

    var3="we are saying $var1"    #ok

  变量的清除:unset命令

    unset 变量名  

  unset var之后,echo  $var ,结果显示空白行,这表示var变量没有初始化;

变量赋值的模式:

  var=value  #注意:等号两边不能有空格

 1 1、变量已初始化情况
 2 root@222-132-16-50:~/cp/sh# colour="reb"
 3 root@222-132-16-50:~/cp/sh# echo "is ${colour+"blue"}"
 4 is blue
 5 root@222-132-16-50:~/cp/sh# echo $colour
 6 reb
 7 root@222-132-16-50:~/cp/sh# unset colour
 8 2、变量未被初始化情况, ":=" 和":-" 对已初始化的变量操作,无作用
 9 root@222-132-16-50:~/cp/sh# unset colour
10 root@222-132-16-50:~/cp/sh# echo $colour
11 
12 root@222-132-16-50:~/cp/sh# echo "is ${colour:="red"}"
13 is red
14 root@222-132-16-50:~/cp/sh# echo $colour
15 red
16 root@222-132-16-50:~/cp/sh# unset colour
17 root@222-132-16-50:~/cp/sh# echo "is ${colour:-"red"}"
18 is red
19 root@222-132-16-50:~/cp/sh# echo $colour
20 
21 root@222-132-16-50:~/cp/sh# 

 

  

 

相关文章:

  • 測试之路2——对照XML文件1
  • 魅族 连接 mac 调试
  • PhotoSwipe - 移动开发必备的 iOS 风格相册
  • https://github.com/cykl/infoqscraper/
  • 数据结构实验之栈四:括号匹配
  • django 安装/部署过程
  • 使用expdp的心得
  • 安装Ubuntu开发工具中心
  • Linux学习之CentOS(九)--Linux系统的网络环境配置
  • 关于Close和FormClosed FormClosing
  • oracle rac 日志体系结构!
  • 简单字符串比较
  • 数据结构试题
  • JAX-RS
  • 重置MYSQL的root账号的密码
  • co模块的前端实现
  • Git初体验
  • iOS编译提示和导航提示
  • js 实现textarea输入字数提示
  • KMP算法及优化
  • Map集合、散列表、红黑树介绍
  • React-Native - 收藏集 - 掘金
  • Redis学习笔记 - pipline(流水线、管道)
  • Service Worker
  • Vue2.0 实现互斥
  • vue-cli3搭建项目
  • XML已死 ?
  • 成为一名优秀的Developer的书单
  • 前端攻城师
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 以太坊客户端Geth命令参数详解
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • NLPIR智能语义技术让大数据挖掘更简单
  • Semaphore
  • UI设计初学者应该如何入门?
  • 数据可视化之下发图实践
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​决定德拉瓦州地区版图的关键历史事件
  • # .NET Framework中使用命名管道进行进程间通信
  • #{} 和 ${}区别
  • #HarmonyOS:Web组件的使用
  • #Linux(make工具和makefile文件以及makefile语法)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • ( 10 )MySQL中的外键
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (c语言)strcpy函数用法
  • (ZT)一个美国文科博士的YardLife
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (算法二)滑动窗口
  • (一) springboot详细介绍
  • (一)VirtualBox安装增强功能
  • .net core控制台应用程序初识
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉