我有一個服務器上的PBS隊列工作的路徑來代替一個變量。 我想自動提交多個作業,因此需要用路徑替換一個變量。 因爲它是不可能得到的參數與隊列運行 行書,我想 取代通常使用 用硬編碼參數的shell變量。簡單的腳本,通過使用awk
我需要的是:
#! /bin/sh
#PBS -N runme_$file
#PBS -o $file.out
#PBS -e $file..err
#PBS -q batch
#PBS -j oe
#PBS -m abe
#PBS -r n
#PBS -l nodes=1:ppn=1
#PBS -l walltime=24:00:00
/home/example/proggie script $file $parameter2
echo "DONE"
與 '/ tmp目錄/輸出' 替換$文件,因此它應該被轉換成:
#! /bin/sh
#PBS -N runme_/tmp/output
#PBS -o /tmp/output.out
#PBS -e /tmp/output.err
#PBS -q batch
#PBS -j oe
#PBS -m abe
#PBS -r n
#PBS -l nodes=1:ppn=1
#PBS -l walltime=24:00:00
/home/example/proggie script /tmp/output $parameter2
/home/example2/proggie2 /tmp/output
echo "DONE"
PBS的部分是重要的,因爲它阻礙了使用的參數。 所以我不能只是使用了$ 1,$ 2和給腳本它通過參數需要的參數 。相反,我必須通過替換命令 更改文件,然後我可以將它提交給排隊系統。 我仍然希望能夠使用命令行中的腳本 進行快速測試。
我嘗試已經在使用SED,而是出現在文件搞砸了一切的特殊字符 的可能性。一定有更好的方法。
您的問題尚不清楚。你爲什麼迴應,但忽略'$ 1'?替換'$ file'的值從哪裏來? '$ parameter2'的值來自哪裏? PBS運行在哪裏;這個問題似乎完全切題? – 2011-06-07 14:34:26
我編輯的問題更清楚。 – tarrasch 2011-06-07 14:47:08