在shell腳本中遇到命令替換問題。我之前在另一個系統上使用過這個腳本,所以不知道這裏發生了什麼。似乎不管我如何附上命令來設置變量,我收到一個空變量。我已經嘗試了許多不同的方法來附上它們($()
,反引號,引號)。如果有幫助,我試圖提交一個數組作業。命令替換問題(變量爲空)
#!/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