首页
学习
活动
专区
圈层
工具
发布

如何判断环境变量为空

-z 很容易理解,在 Shell 脚本里就是表示后面这个变量是否为空,也做 zero 的意思。那后面的 +x 呢?...2 Example 以下例子是先定义了 VARIABLE 变量为空,然后判断为空的时候输出需要设置环境变量,不为空则打印变量值。 VARIABLE= if !...运行后发现,结果有点诡异,明明变量是空的,为什么会报告说变量定义了呢? ➜ /tmp cat x.sh VARIABLE= if !...我大概解释一下,${VARIABLE+x} 这种称为 parameter expansion,这个变量的含义是,如果 VARIABLE 是 unset 或者空的,则会用 x 来替换这个值,最后再用刚刚的例子测试一下.../x.sh x was defined 可以看到VARIABLE为空值null,所以会用x来替换${VARIABLE的值,也就是说此时${VARIABLE}=x,所以最终会输出x的值。

1.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Spring Boot 实战开发】第2讲 Kotlin类型系统与空安全

    Kotlin 是 Google 公司的 Android 官方支持的开发语言。Spring 官方也正式支持Kotlin语言,Spring Boot 2.0 版本中为 Kotlin 提供了一流的支持。...其实,在 Spring Boot 2.0 和 Spring 5.0 框架源代码中,我们已经可以看到 Kotlin 代码。...本系列课程介绍了基于 Gradle + Kotlin 、使用 Spring Boot 2.0 框架来开发企业级应用的最佳实践。...我希望通过简练的表述、详细的演示,系统全面地介绍如何使用 Spring Boot 2.0 框架开发项目,以及如何 Kotlin 进行实际的服务端项目的开发。...系列课程视频地址: 【Spring Boot 2.0 极简教程】第1讲 Kotlin 的极简特性之:隐式类型与函数式编程 【Spring Boot 2.0 极简教程】第2讲 Kotlin类型系统与空安全

    1.1K30

    【Kotlin】扩展函数 ② ( 扩展属性 | 为可空类型定义扩展函数 | 使用 infix 关键字修饰单个参数扩展函数的简略写法 )

    文章目录 一、扩展属性 二、可空类扩展 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 一、扩展属性 ---- 上一篇博客 【Kotlin】扩展函数 ( 扩展函数简介 | 为 Any 超类定义扩展函数...---- 之前讲的定义扩展函数 , 扩展属性 , 都是为 非空类型 定义的 , 如果要为 可空类型 定义扩展函数 , 则需要在 扩展函数 中 处理时 , 要多考虑一层 接收者 this 为空 的 情况...; 注意下面的调用细节 : 如果定义的 扩展函数 是 为 非空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时使用 " ?....非空类型扩展函数 如果定义的 扩展函数 是为 可空类型定义的 , 可空类型变量 想要调用该 扩展函数 , 在调用时直接使用 " . " 进行调用即可 ; 可空类型实例对象.可空类型扩展函数 代码示例...123abc this = null, string = abc, 接收者为空 abc 三、使用 infix 关键字修饰单个参数扩展函数的简略写法 ---- 如果 扩展函数 只有 一个参数 , 并且在

    2.7K30

    Spring认证中国教育管理中心-Spring Data R2DBC框架教程七

    Spring Data 为 Kotlin 提供一流的支持,让开发人员几乎可以像编写 Kotlin 原生框架一样编写 Kotlin 应用程序。...(Kotlin 允许使用具有可为空值的函数式构造。请参阅Kotlin 空值安全性综合指南。)...Kotlin 对 JSR-305 注释和 Spring 可空性注释的支持为Kotlin 开发人员提供了整个 Spring Data API 的空安全,具有null在编译时处理相关问题的优势。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用。...例如,Kotlin reified 类型参数为 JVM泛型类型擦除提供了一种解决方法,Spring Data 提供了一些扩展来利用此功能。这允许更好的 Kotlin API。

    1.7K40

    Spring Boot + Kotlin + Gradle 构建现代化后端应用

    这一技术栈不仅具备强大的框架能力,还充分利用了 Kotlin 的简洁语法、空安全机制和函数式编程特性,极大提升了开发效率与代码质量。...kotlin("plugin.spring"):自动为被 Spring 注解(如 @Component, @Configuration, @Service)修饰的类添加 open 关键字,解决 Kotlin...应用启动类:简洁的顶层函数 Kotlin 允许将 main 函数定义为文件顶层函数,无需嵌套在对象或类中: @SpringBootApplication class DemoApplication fun...简洁语法、空安全、数据类、扩展函数 Spring Boot 自动配置、内嵌容器、健康检查、Actuator Gradle + Kotlin DSL 类型安全、IDE 支持好、易于维护 最佳实践总结:...; 多模块项目中合理划分职责,避免循环依赖; 利用 Kotlin 空安全提升代码健壮性; 统一构建脚本,提高团队协作效率。

    23210

    Spring中国教育管理中心-Apache Cassandra 的 Spring 数据教程十四

    Spring Data 为 Kotlin 提供一流的支持,让开发人员几乎可以像编写 Kotlin 原生框架一样编写 Kotlin 应用程序。...(Kotlin 允许使用具有可为空值的函数式构造。请参阅Kotlin 空值安全性综合指南。)...Kotlin 对 JSR-305 注释和 Spring 可空性注释的支持为Kotlin 开发人员提供了整个 Spring Data API 的空安全,具有null在编译时处理相关问题的优势。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用。...例如,Kotlin reified 类型参数为 JVM泛型类型擦除提供了一种解决方法,Spring Data 提供了一些扩展来利用此功能。这允许更好的 Kotlin API。

    2.1K40

    Spring认证中国教育管理中心-Spring Data MongoDB教程十五

    Spring Data 为 Kotlin 提供一流的支持,让开发人员几乎可以像编写 Kotlin 原生框架一样编写 Kotlin 应用程序。...如果您通过start.spring.io引导 Kotlin 项目,则默认提供这些。 20.2.零安全 Kotlin 的关键特性之一是空安全,它null在编译时干净地处理值。...(Kotlin 允许使用具有可为空值的函数式构造。请参阅Kotlin 空值安全性综合指南。)...Kotlin 对 JSR-305 注释和 Spring 可空性注释的支持为Kotlin 开发人员提供了整个 Spring Data API 的空安全,具有null在编译时处理相关问题的优势。...Spring Data Kotlin API 使用这些扩展为现有的 Spring API 添加新的 Kotlin 特定的便利。 请记住,需要导入 Kotlin 扩展才能使用。

    3K30

    Spring 之父:我不是 Java 的“黑粉”,但我也不想再碰它!这门语言拯救了我......

    我认为,这也使得团队随着发展,始终保持着专业和良好的行为,社区成员也十分感激这一点。 将 Spring 发展成为一个主流框架,要求我们做出艰苦的努力和一些好运。...我写的 Kotlin 代码越多,我就越为之欣喜。我相信,很多听众也经历了类似的体验,尤其是在他们第一次开始使用 Kotlin 时。...当我看到一段看起来比较像 Java 的代码时,里面可能只是做了几个空值检查,或者已经使用了 Kotlin 的智能类型转换特性,但它们仍然只是简单地堆叠空值检查。...相比之下,Kotlin 的互操作性几乎为零,这真的非常了不起。...Spring 文档对于 Kotlin 的支持非常好,其中包含了许多示例,明确说明你可以选择使用 Kotlin 或 Java。因此,Kotlin 始终是一个完全受支持的选择。

    18500

    Kotlin 企业级应用开发教程(Spring 5 + Spring Boot 2.0 + MyBatis)

    Kotlin 企业级应用开发教程 —— Spring 5 + Spring Boot 2.0 + MyBatis 内容简介 Kotlin编程语言是一种现代语言,它简洁,安全,实用,同时专注于与Java...我们将讨论:Kotlin 特性之旅,可空类型与类型安全,使用Kotlin进行函数编程,使用Kotlin进行面向对象编程,Kotlin标准库的强大功能以及与Java互操作性。...端以及 Java 运行的所有地方 1.3.2 类型系统与智能推断 1.3.3 函数式编程和面向对象编程 1.4 一键转换Java 到 Kotlin 1.5 小结 第 2 章 可空类型与类型安全 2.1...可空性 2.1.1 可空类型 2.1.2 安全调用符 2.1.3 Elvis 运算符 2.1.4 非空断言符 2.2 安全类型转换 2.3 类型系统架构 2.4 小结 第 3 章 使用Kotlin进行函数式编程...与Java 互操作 6.1 属性的读写 6.1.1 Getter和Setter 6.2 空安全类型 6.2.1 Kotlin空安全类型问题 6.3 包级函数:静态方法 6.4 扩展方法:带Receiver

    1.4K10

    Spring源码阅读指南_redis编译安装

    版本也可) 插件:maven(3.6.3)(未用到)Gradle (4.10.3) Kotlin(idea内装) JDK:原机安装1.8版本 需要11版本(后续会说明JDK1.8问题) 注:流程可能较长...(v5.3.3-SNAPSHOT)版本可能会导致后期配置时的不适,同时码云上也有Springframework版本 暂未以此测试过 2.2gradle下载及安装 获取gradle-4.10.3,地址为:...java: 建立系统变量GRADLE_HOME 值为解压目录中bin文件夹的上一级目录(bin在这个目录下) 编辑PATH系统变量 配置完成以后win+r,输入cmd进入dos...: warnings found and -Weeror specified 问题1解决: 添加依赖包 该包项目中有 在源码目录项目spring-core/kotlin-coroutines/build.../libs下 选择 即可解决 问题2解决: 更换idea的JDK为JDK11(注意这个可以官网下载安装即可不需要配置到环境变量去使用那么麻烦) 本地有相关JDK11包即可 问题

    1.2K20

    Gradle 5.0 更新介绍

    版权声明:本文为博主原创文章,转载请注明出处。...dependencies { // 导入了BOM文件, 会覆盖其他地方声明的版本 implementation(enforcedPlatform("org.springframework.boot:spring-boot-dependencies...DSL 1.0 Gradle官方很早就开始开发基于Kotlin的DSL了,在Gradle 5.0中Kotlin DSL正式版终于现身了,这意味着我们可以在生产项目中使用Kotlin DSL了。...配置项目和代码包名,现在init任务提供了参数来设置项目和源代码的包名; 创建资源文件夹,现在init任务还会创建空的resource文件夹; 创建.gitignore文件。...以低优先级进程方式启动 现在Gradle可以使用--priority low命令行参数或者org.gradle.priority=low属性作为低优先级进程启动,这可以保证IDE和终端即使在繁重的任务时始终处于可响应状态

    1.2K40
    领券