一直想用命令来运行程序,不用手动重复输入。今天学点皮毛,能跑程序。现在总结一下。
第一个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种方法