首页 > 解决方案 > Shell 脚本:if 语句无法正常工作

问题描述

我编写了一个 shell 脚本(用于练习),它应该编译一个 C++ ( .cpp) 文件,自动生成一个可执行文件clang++并执行它。我的代码:

#!/bin/bash

function runcpp() {
  CPPFILE=$1
  if [ -z $CPPFILE ]; then
    echo "You need to specify a path to your .cpp file!"
  else
    echo -n "Checking if '$CPPFILE' is a valid file..."
    if [[ $CPPFILE == "*.cpp" ]]; then
      echo -e "\rChecking if '$CPPFILE' is a valid file... successful"
      echo -n "Generating executable for '$CPPFILE'..."
      clang++ $CPPFILE
      echo -e "\rGenerating executable for '$CPPFILE'... done"
    fi
  fi

}

然而,这还没有完成,在第 9 行 ( if [[ $CPPFILE == "*.cpp" ]]; then) 出现了问题:脚本退出,即使我指定的文件是一个.cpp文件。我的终端窗口:

kali@kali:~$ ls -lha *.cpp
-rw-r--r-- 1 kali kali 98 Feb  9 19:35 test.cpp
kali@kali:~$ runcpp test.cpp 
Checking if 'test.cpp' is a valid file...kali@kali:~$

标签: functionshellcommand

解决方案


推荐阅读