2012-11-16 47 views
0

我有一個簡短的bash腳本運行samtools mpileup。它在本地運行良好,但是當我嘗試在SGE上運行時,我收到了「非法變量名稱」反饋。SGE上的非法變量名稱,但不是本地的。

#!/bin/bash 
for f in $(find /bed_files -name '*.bed') 
do 
name=$(echo $f | awk 'gsub("/", "_")') 
name2=$(echo $name | awk 'gsub("_bed_files_", "")') 
name3=$(echo $name2 | awk 'gsub(".bed", "")') 
samtools runs here 
done 

SGE變量語法與bash不同嗎?

+0

聽起來像是你的腳本是根據不同的外殼跑。嘗試傳遞您希望sge的shell作爲腳本中的參數。我認爲這可能是「 - 」,但不要在此引用我的意思。 –

+0

如果可能的話,編輯你的問題,包括調用'samtools'之前添加的'set -vx'的實際跟蹤(後跟'set + vx')幷包含錯誤消息的確切文本。此外,您可以通過學習參數修飾符來避免所有額外的流程創建,即'name = $ {f // \ // _}'或類似。祝你好運。 – shellter

+0

試試類似echo「$ BASH_VERSION」 – cdleonard

回答

2

是的,我需要改變的第一行:

#$ -S /bin/sh 
+1

謝謝 - 你可能救了我很多壓力:)。 – Danny

相關問題