2014-09-23 69 views
1

我是bash shell編程的新手,但我想學習。我有一個名爲run.cpp的C++文件,它在運行時會提供大量的文本文件結果,例如output1.txt,output2.txt等,直到output2000.txt。首先,我想創建一個名爲Output的文件;然後編譯並運行該程序。在獲得所有txt文件結果後,我想用*通配符將它們移動到Output文件中。Bash shell腳本,用於編譯C++和操縱輸出

我可以從shell單獨做到這一點。但是,我無法爲此自動編寫腳本。

任何幫助,或任何有關shell腳本的參考資料,在這一點上都會有很大的幫助。

預先感謝您。

我的shell命令是:

mkdir Output 
    g++ run.cpp -o run 
    cp *.txt /Output 
+0

「問題」僅僅是要求而不顯示任何努力[可能會被刪除](http://meta.stackoverflow.com/q/270903/2596334)。他們曾經被認爲是[off-topic](http://stackoverflow.com/help/on-topic),但是[仍在辯論](http://meta.stackexchange.com/q/215596/235574)。許多人認爲這是粗魯的,所以請嘗試[遵循指導](http://stackoverflow.com/help/asking)。謝謝。 – 2014-09-23 16:52:06

+1

您可能想了解[GNU Make](http://www.gnu.org/software/make/),這是最常用的工業標準編譯C和C++項目的方式。如果您使用的是Linux,您的發行版可能已經附帶make工具。 – 2014-09-23 16:53:32

+1

請注意,如果您向我們展示了在shell中鍵入的命令序列,我們將立即看到shell腳本 - 您將自行回答您的問題。這是shell腳本的優點。 – 2014-09-23 16:53:37

回答

1

寫一個腳本與此內容。讓我們將腳本命名爲script.sh

#!/bin/sh 

mkdir Output 
g++ -o run run.cpp 
./run 
mv output*.txt Output 

運行腳本。無論你的shell是什麼,都可以運行腳本。如果是bash

bash script.sh

注意,如果你的腳本是在另一個目錄並從該目錄中運行,你必須指定.cpp文件,要將可執行去的確切位置,運行時可執行文件的確切路徑,程序中輸出文件的路徑以及您想要創建目錄的位置。另外我假設彙編是用g++完成的。

+0

運行程序後,爲什麼不把程序創建到正確的位置(即'mkdir Output; g ++ ...; cd Output; ../ run'),而不是在運行程序後移動文件? – twalberg 2014-09-23 17:54:21

+0

@twalberg。顯然有不同的方法來達到同樣的結果。 – Ares 2014-09-23 18:10:43