Shell脚本中的If Else条件语句[重复]

pgccezyw  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(129)
    • 此问题在此处已有答案**:

Why should there be spaces around '[' and ']' in Bash?(5个答案)
Why does a space in a variable assignment give an error in Bash? [duplicate](3个答案)
21小时前关门了。

    • 基于IF语句中提到的条件的Shell脚本中的变量值。**

我有一个shell脚本,我想根据if语句中的条件分配一个变量。
例如:

build(){
    
     SRC_TBL=$1

     filename=`echo $SRC_TBL | sed 's/_//g'`

     target_tbl=`echo $SRC_TBL | tr '[a-z]' '[A-Z]'`

     if [["${target_tbl}" == "DEMO" ]];then
        target_tbl= "TEST"
     fi
    
    }

build "DEMO"

我正在运行上面的函数,所以根据逻辑,变量target_tbl的值应该是TEST,但它仍然是DEMO。
帮帮我,我哪里错了

de90aj5v

de90aj5v1#

您的脚本有几个问题。
1.赋值在=周围不能有空格

  1. [[后面必须有一个空格
    以下是修复后的脚本,运行良好:
#!/usr/bin/env bash

build() {

  SRC_TBL=$1

  filename=$(echo "$SRC_TBL" | sed 's/_//g')

  target_tbl=$(echo "$SRC_TBL" | tr '[a-z]' '[A-Z]')

  if [[ "$target_tbl" == "DEMO" ]]; then
    target_tbl="TEST"
  fi
  printf "%s" "$target_tbl"
}

build "DEMO"

未来的一些资源:
https://github.com/dylanaraps/pure-bash-bible
https://www.shellcheck.net/

相关问题