Shell 变量的操作方法

    在Shell中,经常会用到:=和:-这样的操作符。

    这两个操作符功能很相似,下面简单比较下:

    

#color="red"
echo "color is ${color}"
//这样应该会打印color is (空白)稍微改造下:
echo "color is ${color:-"no color"}"
//这样应该会打印color is no color
或者
echo "color is ${color:="no color"}"
//这样同样会打印color is no color

  

   但是假如继续打印color变量,会出现什么情况呢?

  

//如果之前使用:-来赋值的话
echo ${color} 会继续打印空白
//而如果之前使用:=来赋值的话
echo ${color} 会打印no color

 

    这样可以看明白了吗?  :=与:-同样为当变量未定义时的赋值语句,但前者是一个肯定的赋值,而后者只是一个简单的替换。

     同样看下:?与?操作符的简单例子

     :? 如果未设置变量,则显示未定义用户错误信息

    ?   如果未设置变量,则显示系统错误信息

    例如:

echo ${color:?}
//这里会输出color: parameter null or not set可以稍微改造下,让它输出更友好的信息
echo ${color:? "can't locate color"}
//这样会输出:color:  can't locate color

  

   想让变量成为一个常量(在shell中称为只读变量)的方法是在变量前加上readonly修饰符

 

   将变量导入环境变量的方法是使用export 变量名,清除它的方式是unset 变量名(这也同样适合于普通变量)

转载于:https://www.cnblogs.com/bestchenwu/archive/2011/06/04/9655459.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

maven-settings.xml的那些事

1、代理<proxies> <proxies><proxy><id>optional</id>//代理名<active>true</active>//true激活该代理<protocol>http</protocol>//代理协议<username>proxyuser</username>//帐号密码<password>prox…

替换空格

题目描述&#xff1a; 请实现一个函数&#xff0c;将一个字符串中的空格替换成“%20”。例如&#xff0c;当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 时间复杂度o(n)的算法 先遍历一次字符串统计出空格的总数&#xff0c;计算出替换之后的字符串的总长…

备份数据 宝塔linux_宝塔面板旧版本升级教程汇总—升级宝塔面板

往期教程&#xff1a;宝塔面板教程&#xff08;1&#xff09;基于云服务器搭建宝塔面板教程最全详解宝塔面板教程&#xff08;2&#xff09;宝塔面板添加WordPress站点详细图文教程宝塔面板教程&#xff08;3&#xff09;基于宝塔面板成功配置网站SSL安全证书宝塔面板教程&…

执行全文索引时出现权限不足的解决方法

&#xfeff;在Oracle中&#xff0c;SYS用户是整个数据库的所有者&#xff0c;SYS拥有数据库中几乎所有的权限。今天我们就来介绍一下使用SYS执行全文索引的建立时&#xff0c;出现了权限不足的错误。   许多人刚刚接触Oracle时&#xff0c;对于权限并不是很了解&#xff0c;…

Swift面向对象基础(上)——Swift中的类和结构体(下)

学习来自《极客学院》1 import Foundation2 3 class User {4 var name:String5 var age:Int6 init(name:String,age:Int){7 self.age age8 self.name name9 } 10 } 11 var u1 User(name:"何杨",age:23) 12 var u2 User(name:&qu…

ultraedit26 运行的是试用模式_如何并行运行你的自动化测试?

点击上方蓝色字关注我们~在自动化测试过程中的某些时刻&#xff0c;你将遇到一个共同的问题&#xff0c;那就是&#xff1a;需要花费很长时间去执行大量的UI自动化测试用例。最为有效地加速用例执行的方式就是并行地运行自动化测试。不幸地是&#xff0c;使各个自动化测试用例并…

js实现IE/Firefox的收藏功能

代码&#xff1a; function addFavorite(el){var url window.location.href,title $(head).find(title).html();try{//IEwindow.external.AddFavorite(url, title);}catch(e){ //Firefoxtry{window.sidebar.addPanel(title,url,);}catch(e){if(window.opera){ //operael.hre…

最小点割集

prim算法不仅仅可以求最小生成树&#xff0c;也可以求“最大生成树”。最小割集Stoer-Wagner算法就是典型的应用实例。 求解最小割集普遍采用Stoer-Wagner算法&#xff0c;不提供此算法证明和代码&#xff0c;只提供算法思路&#xff1a; 1.minMAXINT&#xff0c;固定一个顶点P…

问题:从键盘读取特定类型的数据(使用Scanner读取int类型)

import java.util.Scanner; public class ScannerIntTest{public static void main(String [] args){int num1,num2;num1 getIntNumber();//调用函数getIntNumber()来获取一个从键盘输入的整数num2 getIntNumber();System.out.println("first number "num1"-…

在统计学中参数的含义是指_期刊论文中科研统计学缺陷分析及解决路径

中华医学科研管理杂志, 2018,31(5) 张策, 陈淑良, 王晓桐, 等摘要目的从期刊论文统计方法缺陷方面进行分析&#xff0c;并提出解决方案。方法资料采用中国知网文献数据库中的"基础科学"及"医药卫生科技"数据库的全部文献作为抽样源&#xff0c;限定时间为…

SPOJ 962 Intergalactic Map (从A到B再到C的路线)

【题意】在一个无向图中&#xff0c;一个人要从A点赶往B点&#xff0c;之后再赶往C点&#xff0c;且要求中途不能多次经过同一个点。问是否存在这样的路线。&#xff08;3 < N < 30011, 1 < M < 50011&#xff09; 【思路】很巧的一道题&#xff0c;一般我们都是把…

【转载】在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库 SQLDMO(SQL Distributed Management Objects&#xff0c;SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口&#xff0c;所以它可以执行很多…

雨棚板弹性法计算简图_钢结构工程量计算、报价要点

第一部分图纸一、图纸&#xff1a;根据图纸目录&#xff0c;清理核对图纸数量&#xff0c;检查是否有遗漏。二、建筑施工图1. 设计总说明&#xff08;1&#xff09; 建筑面积、结构形式、柱距、跨度、结构布置情况&#xff1b;&#xff08;2&#xff09; 工程量计算的范围&…

ubuntu制作usb启动盘

准备&#xff1a; u盘iso镜像文件--ubuntu-12.04.2-desktop-amd64.iso烧盘软件--unetbootin-linux-583步骤&#xff1a; 格式化u盘 查看u盘信息 #mount/dev/sdb1 on /media/KINGSTON type vfat (rw,nosuid,nodev,uid1000,gid1000,shortnamemixed,dmask0077,utf81,showexec,flus…

HDU1907 ZJU3113

/* 有SJ 定理&#xff1a;对于任意的一个 Anti-SG 游戏&#xff0c;如果我们规定当局面中所有单一游戏的 SG 值为 0 时游戏 结束&#xff0c;则先手必胜当且仅当以下两个条件满足任意一个&#xff1a; (1)游戏的 SG 函数不为 0&#xff0c;且游戏中某个单一游戏的 SG 函数大于1…

十分钟理解线性代数的本质_数学对于编程来说到底有多重要?来看看编程大佬眼里的线性代数!...

本文提出了一种观点&#xff1a;从应用的角度&#xff0c;我们可以把线性代数视为一门特定领域的程序语言。我们一起来看看&#xff01;文章有点偏理论讨论&#xff0c;可能比较枯燥&#xff0c;对于一名程序员&#xff0c;你如果看下去&#xff0c;你将会有不一样的收获&#…

oh-my-zsh upgrade problem

Oh-My-ZSH upgrade issue with bad substitution message Any problem with automatic Oh-My-Zsh upgrade? Last login: Mon May 13 13:57:50 2013 from ifusio.com [Oh My Zsh] Would you like to check for updates? Type Y to update oh-my-zsh: y /home/thomas/.oh-my-zs…

u-boot-2011.06-rc2移植到mini2440开发板(一)

一、移植环境 u-boot版本&#xff1a;u-boot-2011.06-rc2 Linux版本&#xff1a;Ubuntu 11.04 交叉编译工具&#xff1a;arm-linux-gcc-4.3.2(友善之臂) 开发板&#xff1a;友善之臂mimi2440 CPU:s3c2440 SDRAM:64MB Nor Flash:2MB Nand Flash:128MB 网卡&#xff1a;DM9000 二…

Linux Socket学习--套接口的类型和协议

我们首先来说一下PF_INET和AF_INET&#xff0c;虽然标准提倡在指定demain参数的时候&#xff0c;优先使用PF_INET&#xff0c;但是大量已经编写的c代码遵循旧的协议。目前情况是AF_UNIXPF_UNIX&#xff0c;AF_INETPF_INET。但是将来是不是这样不好说啊。 不同于socketpari函数的…

8266串口调试助手_200行Python代码实现串口调试助手(2) 界面构建

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是串口调试工具pzh-py-com诞生之界面构建。一个软件的UI界面是非常重要的&#xff0c;这是软件与用户交互的接口&#xff0c;软件功能即使再强大&#xff0c;但如果没有清晰的UI界面&#…