一直想用命令來運行程序,不用手動重複輸入。今天學點皮毛,能跑程序。現在總結一下。
第一個shell腳本
使用vi/vim 創建一個文件 test.sh (擴展名爲sh,表示shell.)
輸入代碼
#!bin/bash
cho "Hello World!"
#!告訴系統腳本需要用什麼解釋器來執行,即使用哪一種shell.
echo 命令用於向窗口輸出文件。
運行Shell 腳本的方法
1.作爲可執行程序
cd到上面程序所在目錄:
chmod +x ./test.sh #使腳本具有執行權限
./test.sh #執行腳本
注意,這裏和運行其他可執行文件一樣,一定寫成 ./test.sh,而不是 test.sh
2.作爲解釋器參數
直接運行解釋器,參數就是shell腳本的文件名
/bin/sh/ test.sh
運行c++程序
循環運行帶有兩個參數的c++程序。第一個參數是輸入文件名,第二個參數是隨機生成數的seed設置。
已經編譯了程序,編譯好的執行文件名爲run
#!/bin/bash
input="input.file"
seeds=(5 10 15 20 25 30 35 40 45 50)
for seed in ${seed[@]}
do
./run $input $seed
done
將上面代碼保存爲 test.sh. 則使用第一種方法 作爲可執行程序運行 沒有問題。
但是使用第二種方法時出現錯誤:
test.sh: 2: test.sh: Syntax error: "(" unexpected
搜索後因爲sh和bash 有些地方不兼容。 bash test.sh 或者直接運行。
參考文獻:
Shell 教程
Syntax error: “(” unexpected
Linux下自動編譯和運行c++文件的shell腳本
shell 數組遍歷的3種方法