2016-11-29 8 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

ただ、「.cppファイル」と一致する$1のいずれかの末尾の部分を除去するためにbash's built-in parameter expansion featuresのいずれかを使用します。

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

私も最後のパラメータであることを、ソースファイルを移動したとするグラム++、それは明らかだように、オプションは(そして終わり)です。

関連する問題