跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • shell 脚本探测变量是否为空, 为什么要加个前缀
未分類
30 8 月 2020

shell 脚本探测变量是否为空, 为什么要加个前缀

shell 脚本探测变量是否为空, 为什么要加个前缀

資深大佬 : DinoStray 5

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then     export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" fi 

这个 shell 脚本, if 语句, 是想探测环境变量是否为空, 为啥不直接

if [ "$KAFKA_HEAP_OPTS" = "" ] 

而是在前面加了个 x

大佬有話說 (5)

  • 資深大佬 : lcdtyph

    为了兼容性,一些 shell 的实现无法正确处理 [ -n = “” ] 这种情况,当你测试的那个变量个是比较特殊(比如”-n”)在某些 shell 下会出错

  • 資深大佬 : wd

    陈年陋习 老版本(很老的那种,我感觉我很早就看到这个写法了) bash 可能会有问题吧

  • 資深大佬 : love

    不是应该 [[ -z $a ]] && echo empty || echo notempty
    吗

  • 資深大佬 : laycher

    @love #3 我也觉得是这种写法。不是-z 判断的吗?

  • 資深大佬 : SiliusMo

    前缀是为了防止一些 shell 在变量未定义的情况下省略这个变量而不是替换为空字符串,从而使代码变为 `if [ = x ]` 。这样会报 参数过少 的错误。

    然而把变量都用双引号括起来已经解决了这个问题…所以主说的第二种情况是完全可以的,这里加前缀 x 应该是多余的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具