shell默认变量值

shell默认变量

${var:-string}/${var:=string}

A=${var:-string}
B=${var:=string}

A和B变量中的var变量如果为空,则用string来替换var变量,否则变量var不为空,则用var来代替string,不同的是当变量var为空的时候,不但用string替换${var:-string}/${var:=string},也会把string赋值给变量var

${var:-string}和${var:=string}效果是一样的

下面看个案例

$ vim t1.sh
var1=123
#var2=456
A=${var1:-string}
B=${var2:=string}
echo ${A} ${B} ${var2}

$ sh t1.sh
123 string string

${var:+string}

A=${var:+string}

替换规则和上面的相反,只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的)

原文地址:https://www.cnblogs.com/jasonminghao/p/12546149.html

时间: 2024-11-14 00:37:19

shell默认变量值的相关文章

变量值及范围控制(六)

双引号与单引号●"字符串..."-在双引号内允许$扩展,可调用其他变量的值-出现特殊字符时,可采用\符号转义-当变量值不包括空格.制表符时,双引号通常被省略●'字符串...'-所有字符均视为该字符本身(无特殊含义)-不允许\转义 利用双引号赋值●将变量A赋值给变量B●有空格时,引号不可能省略 利用单引号赋值●有利用保存特殊字符 read读入变量值的用法●基本格式-read 变量名...-read -p "提示信息" 变量名(方便添加自定义交互) 默认取值●启动rea

微信小程序----关于变量对象data 和 前端wxml取后台js变量值

(一)页面变量对象data 对象data 有两个方面用途 第一,前端wxml的数据渲染是通过设置此对象中定义的变量进行关联展现的 第二,定义JS页面中的页面局部变量,使其整个页面中可使用或调用 对象data定义的变量支持各种数据类型,string,int,[],{} 第一.wxml数据渲染,只要通过设置data值(this.setData({...}))即可 如: wxml页面:detail对象中包含有TaskBillCode与BillDate两个属性 js页面: 第二.页面变量 定义: 存储:

ORACLE获取SQL绑定变量值的方法总结

  本文总结一下ORACLE数据库中如何获取SQL绑定变量值的方法,在SQL优化调优过程中,经常会用到这方面的知识点.在此梳理.总结一下,方面日后查找.翻阅. 方法1:查询V$SQL V$SQL视图中的BIND_DATA字段用来存储绑定变量的值,但是从这个视图查询绑定变量的值,有很大的局限性: 1: 它的记录频率受_cursor_bind_capture_interval隐含参数控制,默认值为900,表示每900秒记录一次绑定值,也就是说在900内,绑定变量值的改变不会反应在这个视图中.除非你调

动态修改 NodeJS 程序中的变量值

如果一个 NodeJS 进程正在运行,有办法修改程序中的变量值么?答案是:通过 V8 的 Debugger 接口可以!本文将详细介绍实现步骤. 启动一个 HTTP Server 用简单的 Hello World 做例子吧,不过略作修改.在 global 下放一个变量 message, 然后打印出来: // message content will be modified ! global.message = "hello world!"; var server = require('h

JDK环境变量中dt.jar、tools.jar等变量值的作用

JAVA_HOME [plain] view plain copy 变量名:JAVA_HOME 变量值:E:\java\jdk7 用途:定义一个变量,供其他地方使用 PATH [plain] view plain copy 变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 用途:让系统在任何路径下都可以识别java.javac.javap等命令 CLASSPATH [plain] view plain copy 变量名:CLASSPATH 变量值

Django 使用getattr() 方法获取配置文件的变量值

在django项目的开发过程中,有时需要获取配置文件里的变量值,可以通过下面这样的方式去进行获取 from django.conf import settings item = getattr(settings, "变量名", "取不到就给一个默认值") 原文地址:https://www.cnblogs.com/lowmanisbusy/p/9220800.html

如何不利用一个额外的变量来达到交换两个变量值的目的-------位上的异或运算

问题:一般我们要交换两个变量的值,多会采取一个额外变量来实现,比如temp=a,a=b,b=temp,现在我们能不利用temp来实现交换a,b两个变量值的目的吗? 解决方案:^异或运算符,而且我们会发现a^a=0,还有0^a=a,依据这两条理论,我们可以实现之前提出的问题. 代码如下: #include<stdio.h>void inplace_swap(int * x,int * y){    *y=*x^*y;    *x=*x^*y;    *y=*y^*x;}int main(){  

Eclipse中debug时鼠标悬停不能查看变量值的问题

问题描述:eclipse在debug模式下,当鼠标移动到某个变量上面时不自动显示该变量对应的值 解决方案:点击eclipse的Window->Preferences->Java->Editor->Hovers, 勾选Variable Values,(如果Combined Hover已经选择了,就取消它), 然后点击Apply,最后点OK.有时不需要勾选Variable Values也能查看变量值,所以勾不勾选多试几下,debug可能就好了. Hovers主要是来用配置当鼠标移动到工

JavaScript交换两个变量值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 1 2 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 1 2 3 4 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有