首页 > 其他分享 >bash变量冒号扩展

bash变量冒号扩展

时间:2023-07-26 16:48:03浏览次数:40  
标签:返回 count 冒号 变量 varname echo defaultval bash

参考自网道

Bash 提供四个特殊语法,跟变量的默认值有关,目的是保证变量不为空。

  • 如果变量为空则返回默认值,否则返回变量本来的值
${varname:-defaultval}

上面语法的含义是,如果变量varname存在且不为空,则返回它的值,否则返回defaultval。它的目的是返回一个默认值,比如${count:-0}表示变量count不存在时返回0。

类似的写法是:

if [ -n "$varname" ]; then
  echo $varname
else
  echo "defaultval"
fi
  • 如果变量为空则返回并设置默认值,否则返回变量原来的值
${varname:=defaultval}

上面语法的含义是,如果变量varname存在且不为空,则返回它的值,否则返回defaultval并且将它设为defaultval。它的目的是设置变量的默认值,比如${count:=0}表示变量count不存在时返回0,且将count设为0。和上面那条扩展不同是,会给变量varname做赋值操作。

类似写法是:

if [ -n "$varname" ]; then
  echo $varname
else
  varname="defaultval"
  echo "defaultval"
fi
  • 如果变量非空返回指定的值,否则返回空
${varname:+word}

上面语法的含义是,如果变量名存在且不为空,则返回word,否则返回空值。它的目的是测试变量是否存在,比如${count:+1}表示变量count存在时返回1(表示true),否则返回空值。

类似的写法是:

if [ -z "$varname" ]; then
  echo $varname
else
  echo "defaultval"
fi
  • 变量为空则打印指定信息,并退出脚本执行
${varname:?message}

上面语法的含义是,如果变量varname存在且不为空,则返回它的值,否则打印出varname: message,并中断脚本的执行。如果省略了message,则输出默认的信息“parameter null or not set.”。它的目的是防止变量未定义,比如${count:?"undefined!"}表示变量count未定义时就中断执行,抛出错误,返回给定的报错信息undefined!。

标签:返回,count,冒号,变量,varname,echo,defaultval,bash
From: https://www.cnblogs.com/thammer/p/17582872.html

相关文章

  • Go语言中声明和定义变量
    在Go语言中,声明和定义变量可以通过不同的方式完成。让我们来了解一下:变量声明和定义:变量声明是指在代码中声明一个变量的存在,而变量定义是为该变量分配内存空间并可以同时进行初始化。Go语言的变量声明和定义可以通过以下方式完成:a)声明并初始化变量:varageint=30b)......
  • 1.变量与运算符
    1.关键字(keyword)定义:被Java语言赋予了特殊含义,用做专门用途的字符串(或单词)HelloWorld案例中,出现的关键字有class、public、static、void等,这些单词已经被Java定义好了。特点:全部关键字都是小写字母。关键字比较多,不需要死记硬背,学到哪里记到哪里即可。官方地......
  • Go语言中变量初始化的所有方式
    在Go语言中,变量的初始化可以通过以下几种方法完成:声明同时初始化:在变量声明的同时进行初始化,可以直接指定变量的初始值。varnumint=42varnamestring="John"varisActivebool=true短变量声明初始化:使用短变量声明语法:=可以在函数内部快速声明并初始化......
  • python代码中冒号出现错误
    如何解决Python代码中冒号出现错误作为一名经验丰富的开发者,我将为你介绍如何解决Python代码中冒号出现错误的问题。在本文中,我将为你提供一个简单的步骤指南,并通过代码示例来说明每个步骤的执行。解决流程下面是解决Python代码中冒号出现错误的流程,按照这些步骤一步一步进行操......
  • python全局变量定义
    Python全局变量定义在编程中,全局变量是在整个程序中都可以被访问和使用的变量。在Python中,我们可以通过在函数外部定义变量来创建全局变量。本文将介绍Python全局变量的定义以及如何在代码中使用它们。定义全局变量Python中定义全局变量非常简单,只需要在函数外部声明变量即可。......
  • 四、python变量与基本数据类型
    上节课复习:1、机器语言、汇编语言、编译型、解释型语言在执行效率、开发效率、跨平台性方面的高低对比2、python解释器与python语言的关系1、python解释器是一款应用程序,专门用来解释python这门语言的语法风格并执行的2、python语言编写的程序最终......
  • ubuntu 设置 python环境变量
    Ubuntu设置Python环境变量在Ubuntu上设置Python环境变量是一项重要的任务,因为它允许您轻松地访问和使用Python解释器、模块和包。本文将向您介绍如何设置Python环境变量,并提供一些示例来帮助您更好地理解。什么是环境变量?环境变量是操作系统中一些特定值的名称,这些值......
  • ubuntu android adb 环境变量配置
    UbuntuAndroidADB环境变量配置简介在开发Android应用程序时,ADB(AndroidDebugBridge)是一个非常重要的工具。ADB提供了与Android设备进行通信的能力,可以用于应用程序的调试、安装、卸载等操作。本文将介绍如何在Ubuntu系统下配置ADB环境变量,以便能够在任何目录下直接......
  • c#变量类型
    有符号整数sbyte(-128~127)int(-21亿多~21亿多)short(-3万多~3万多)long(-9百万兆多~9百万兆多)无符号整数byte(0~255)uint (0~42亿多)ushort (0~6万多)ulong(0~18百万兆多)浮点数 float(7~8位有效数字)double(15~17位......
  • 静态变量探查
    intglobal_int_var=84;intglobal_unint_var;voidfunc1(inti){printf("%d\n",i);}intmain(void){staticintstatic_var=85;staticintstatic_var1;func1(static_var+static_var1);}gcccProfile.c-oa.oobjdump-t......