쉘 스크립트에서 명령 대체에 약간의 문제가 있습니다. 전에이 스크립트를 다른 시스템에서 사용 했으므로 여기에서 무슨 일이 일어나는지 확실하지 않습니다. 변수를 설정하기 위해 명령을 묶는 것과 상관없는 것처럼 보입니다. 빈 변수가 생깁니다. 나는 그들을 묶는 많은 다른 방법을 시도했다. ($()
, backticks, 따옴표). 도움이된다면 배열 작업을 제출하려고합니다.명령 대체 문제 (변수가 비어 있음)
#!/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