シェルスクリプトでコマンド置換に問題があります。私は前にこのスクリプトを別のシステムで使っていたので、ここで何が起こっているのか分かりません。どのように変数を設定するためのコマンドを囲んでいるかのように思えますが、空の変数があります。私はそれらを囲むためにさまざまな方法を試みました($()
、backticks、quotes)。役立つなら、私は配列ジョブを提出しようとしています。コマンド置換の問題(変数が空です)
#!/bin/bash
#BSUB -q shared
#BSUB -W 23:55
#BSUB -M 51200
#BSUB -J windowCovR1
#BSUB -R "span[hosts=1]"
mem=$LSB_JOBINDEX
sample=`head -n "$mem" bednames.txt | tail -1 | awk '{print $2}'`
eval ${sample}
echo ${sample}
$mem
が適切に設定されている、それはsample
ラインで何かです。 echo
コマンドは、空行を出力します。
[私は変数にコマンドを入れようとしていますが、複雑なケースは常に失敗します!](http://mywiki.wooledge.org/BashFAQ/050) – fedorqui
私は実際にこの問題に対処するとは思わない...これは私のために(別のシステム上で)前に働いていたので、今起こっていることは分かりません。 – Ethan
おそらく 'bednames.txt'は空ですか?ファイルから 'N '行を取得するより良い方法は' sample = $(awk -vlineno = $ {mem}' NR == lineno {print $ 2} 'bednames.txt) '... – twalberg