2016-11-29 36 views
0

我想編寫一個腳本來編寫更快的代碼。我想編譯一個XYZ.cpp文件,我希望輸出是XYZ.out。用於編譯C++的腳本

這裏是我的腳本:

#!/bin/bash 

# getting the part before .cpp 
var1=`echo "$1" | cut -d"." -f1` 

# compile 
g++ -std=c++11 -Wall -pedantic -Wno-long-long "$1" -o "$var1.out" -lm 

我運行它:ccc program.cpp

腳本運行,但輸出仍是a.out。我究竟做錯了什麼?

+0

如果你迴應'$ var1'的值,它是什麼? –

+0

用'xtrace'運行腳本,例如:'bash -x ccc program.cpp'。這將顯示所有擴展並澄清正在發生的事情。 – cdarke

回答

0

只需使用的bash's built-in parameter expansion features之一刪除的$1匹配「的.cpp」末尾的任何部分:

#!/bin/bash 
g++ -std=c++11 -Wall -pedantic -Wno-long-long -o "${1%%.cpp}.out" -lm "$1" 

我也感動的源文件是最後一個參數,以G ++,所以很明顯選項是(和結束)。