Probleme mit Befehlssubstitution in einem Shellskript. Ich habe dieses Skript zuvor auf einem anderen System verwendet, also bin ich mir nicht sicher, was hier vor sich geht. Scheint, egal wie ich die Befehle umschließe, um die Variable zu setzen, bekomme ich eine leere Variable. Ich habe viele verschiedene Möglichkeiten versucht, sie zu umschließen ($()
, Backticks, Zitate). Wenn es hilft, versuche ich einen Array-Job einzureichen.Probleme mit Befehlsersetzung (Variable ist leer)
#!/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
richtig eingestellt wird, dann ist es etwas mit der sample
Linie. Der Befehl echo
druckt eine leere Zeile.
[Ich versuche, einen Befehl in eine Variable zu setzen, aber die komplexen Fälle scheitern immer!] (Http://mywiki.wooledge.org/BashFAQ/050) – fedorqui
Ich glaube nicht, dass das wirklich dieses Problem angeht ... das hat vorher für mich funktioniert (auf einem anderen System), also nicht sicher, was gerade passiert. – Ethan
Vielleicht ist 'bednames.txt' leer? Ein besserer Weg, die Zeile 'N' aus der Datei zu bekommen, könnte' sample = $ sein (awk -vlineno = $ {mem} 'NR == lineno {print $ 2}' bednames.txt) '... – twalberg