2016-03-08 20 views
2

因此,我是一名大學生,我嘗試創建一個bash腳本來讀取已編譯的c程序作爲參數,然後在測試一堆不同場景的程序上運行一堆測試,這樣我就不必每次都用不同的輸入運行程序。一個以.c文件名作爲參數的bash腳本,然後執行該文件

這是我

#!/bin/bash 
#test.sh 
read studentFile 


$studentFile "1011" "2" "10" 
echo "11" 
./$studentFile "1011" "2" "16" 
echo "B" 
./$studentFile "1010" "2" "8" 
echo "12" 
./$studentFile "FA" "16" "2" 
echo "11111010" 
./$studentFile "12" "8" "2" 
echo "1010" 

等 (每次執行伴隨着打印出來是正確的答案,該方案應返回和匹配)

每當我跑這一個編譯C程序作爲輸入 即

./test.sh studentfilename 

它返回此錯誤

./test.sh: line 8: ./: Is a directory 

我嘗試運行該程序的每一行。

我已經測試了輸入文件,並確保它在嘗試將其輸入到此測試腳本之前工作。

有誰知道如何將文件作爲輸入並運行它?

任何幫助非常感謝謝謝!

+2

與主要問題無關,您必須在典型環境中執行源文件之前編譯源文件。 – MikeCAT

+1

嗯......只是標題很混亂,問題說bash腳本讀取*編譯後的c程序*。 – MikeCAT

回答

3

既然你與編譯的程序作爲參數調用腳本,你需要使用

studentFile=$1 

read studentFile 
+0

謝謝你是這個問題! –

2
你想傳遞通過命令行參數的文件名

,所以你必須使用像$1這樣的變量來獲取名稱。

嘗試studentFile=$1而不是read studentFile

+0

謝謝你是這個問題! –

相關問題