做分布式并行计算的时候经常需要将编译好的文件传到各计算节点的同一目录下.当计算节点很多时,这各工作相当繁琐.我们下面举例实现这一传送文件到各节点的脚本.
1,新建文件.文件名为 transfile,内容如下
#!/bin/bash
scp $1 node1:$HOME
scp $1 node2:$HOME
........
scp $1 noden:$HOME
脚本的第一行,以“#!”开始是特别的提示-它告诉shell应该用哪一个程序来解释我的脚本。在这个例子里,我使用bash shell /bin/bash。第一行必须使用“#!”开头,否则脚本不会运行(系统认为是一个文本文件)。其他以“#”开始的行是注释行只是给作者和读者使用的,计算机将跳过这些行。
在以上脚本里,参数$0, $1, $2…是传递到脚本里面的参数。
2,把文件属性改成对文件拥有者是“可执行”的.
$ chmod u+x transfile
3,运行:
$./transfile cpi # 将文件 cpi 拷贝到node1-n的同一目录(这里时用户家目录)下面.
另外, 可以把一些要用到的命令放在一起, 一个接一个输入到文件里. 然后使用 source 命令传递给shell让它直接运行:
$ source filename
这时就不需要在文本第一行加上"#!"的标志了.