簡體   English   中英

如何以批處理模式工作

[英]How to work in batch mode

我繼承了一個ANSI C ++程序,該程序:沒有GUI,應該以批處理模式運行,生成大量數據(我們正在談論100,000+ ASCII文件)。 我們認為從長遠來看,它將在UNIX下運行。 現在,我有一台運行OS X 10.9.4的MacBook Air,並加載了Xcode 5.1.1。 它編譯時沒有錯誤或警告。

我需要測試一個程序,如下所示:

<prompt> myprogram datain dataout1 datout2

編譯后的程序在哪里? 在哪個目錄? 我可以在該目錄中復制數據文件嗎?

為了在Windows(命令提示符窗口)下重復執行,我通常將具有以下類型的批處理文件:

myprogram datain1 dataout11 datout12
myprogram datain2 dataout21 datout22
myprogram datain3 dataout31 datout32
........
myprogram datainn dataoutn1 datoutn2

我可以使用OS X做類似的事情嗎? 在哪里可以找到適用的文檔?

您將要尋找您的終端仿真程序。 有關使用方法,請參見http://en.wikipedia.org/wiki/Terminal_(OS_X) ,它應該是bash shell,它是unix shell之一。

您也可以執行shell腳本,有關一些bash shell腳本信息,請參見http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

對於這樣一個簡單的操作,您可以編寫一個外殼腳本,該腳本看起來幾乎與Windows上使用的批處理文件相同。 Windows的cmd.exe和* nix shell之間的主要區別在於,當前目錄不是可執行文件搜索路徑的一部分(在Windows上是這樣),因此,如果將shell腳本與編譯后的可執行文件,您需要在程序名稱前加上./ (以“在當前目錄中查找”為前綴)。 例如:

#!/bin/sh
./myprogram datain1 dataout11 datout12
./myprogram datain2 dataout21 datout22
./myprogram datain3 dataout31 datout32
........
./myprogram datainn dataoutn1 datoutn2

如果外殼程序腳本和可執行文件不在同一文件夾中,則可以使用絕對路徑或適當的相對路徑。

另外,要運行腳本,您將需要使其可執行:

$ chmod +x myscript.sh
$ ./myscript.sh

或使用腳本作為參數調用外殼程序:

$ sh myscript.sh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM