Bash

文件夾排除格式問題

  • August 31, 2017

我正在嘗試為faultfinder和cppcheck創建目標,它將遞歸搜尋目前目錄,但忽略名為“Test”的目錄。但是,我遇到了一些格式化問題。

我的使用者編寫和腳本命令在終端上顯示時看起來相同

我的使用者輸入的終端顯示:

cppcheck --quiet --force !(Tests) 

當我執行make .securityCheck時,生成文件輸出的 Vs 終端顯示:

=================== cppcheck ======================
Tue Aug 29 13:32:00 PDT 2017
===================================================
cppcheck --quiet --force !(Tests)

執行 makefile 腳本時會產生錯誤:

syntax error near unexpected token `('

當我的使用者輸入正確評估時

生成文件:

CPPCHECK ?= cppcheck
CPPCHECK_FLAGS += --quiet --force

FLAWFINDER ?= flawfinder
FLAWFINDER_FLAGS += --quiet --dataonly --minlevel 4

SOURCES ?= !(Tests)

.securityCheck:
 @$(ECHO) =================== cppcheck ======================
 @$(DATE)
 @$(TIME)
 @$(ECHO) ===================================================
 $(CPPCHECK) $(CPPCHECK_FLAGS) $(SOURCES)

 @$(ECHO) ================== flawfinder =====================
 @$(DATE)
 @$(TIME)
 @$(ECHO) ===================================================
 $(FLAWFINDER) $(FLAWFINDER_FLAGS) $(SOURCES)

目前使用 kubuntu 16.04 LTS。uname -a 將 linux 版本指定為 4.10.0-33-generic。make –version 提供 GNU Make 4.1。也使用 bash。

我相信您看到的錯誤可能cppcheckMakefile(或目前目錄中的其他一些非 C 或非 C++ 原始碼文件)作為輸入文件一起執行。

我建議您不要設置SOURCES!(Tests),而是將其設置為您要執行的程序的實際原始碼文件cppcheck

引用自:https://unix.stackexchange.com/questions/389168