在Oracle / Sun GridEngine中执行bash脚本

时间:2013-08-02 13:37:18

标签: variables sungridengine

我有一个脚本,首先定义一系列变量,然后运行带有这些变量的程序。但是,脚本被Grid Engine拒绝(它在工作站上工作,但作为阵列作业的一个组件,它需要通过SGE运行)因为变量被读作命令,导致“找不到命令”响应。

使用以下内容完全复制错误:

#!/bin/bash
#$ -M not.real@email.address
#$ -m be
#$ -o /scratch/MScGWAS/Output
#$ -e /scratch/MScGWAS/Errors
#$ -q long.q
#$ -cwd
CHR=$1
CHUNK_START=`printf "%.0f" $2`
CHUNK_END=`printf "%.0f" $3`

输出示例:

CHR=1: Command not found.
CHUNK_START=1: Command not found.
CHUNK_END=5000000: Command not found.

如何让GridEngine使用bash作为此脚本的解释器?

2 个答案:

答案 0 :(得分:3)

您没有使用bash执行脚本,但使用不同的shell(例如tcsh)。

答案 1 :(得分:0)

听起来你的网格引擎集群配置了posix_compliant模式的队列和/ bin / csh作为默认shell。在posix_compliant模式中,最初的#!被忽略,您需要通过命令行开关或适当的#$指令指定shell。 将以下行添加到脚本中应该有效:

#$ -S / bin / bash