簡體   English   中英

在 bash 腳本中調用變量

[英]Call variable inside bash script

我正在嘗試創建一個變量'a',它將包含三個坐標的文件的第一行也是唯一一行,每個坐標之間用逗號作為一行。 然后,我試圖調用這個變量來設置是作為運行第二個程序的輸入。 我正在嘗試從同一個腳本中執行此操作,如下所示。

a=$(cut -f 2 aver.line.comma.dat)
$MGLROOT/bin/pythonsh ~/Downloads/autodockZN_filesAndTutorial/prepare_gpf4zn.py -l ligand.pdbqt -r protein_tz.pdbqt  -o protein_tz.gpf -p npts=500,500,500 -p gridcenter=echo "$a"  -p parameter_file=AD4Zn.dat

我有所有需要的輸入文件。 我想確保 gridcenter 將等於這個變量 a。

我的變量 a 如下所示:

95.8916,53.8569,28.052

有人知道實現這一目標的方法嗎? 我嘗試設置 gridcenter=$a 和 gridcenter=(echo $a),但沒有成功。

謝謝!

您不需要“調用”或“執行”變量。 要使用它,只需擴展它:

... -p gridcenter="$a" ...

旁注:當您有大量 arguments 時,將它們存儲在數組中有助於提高可讀性

prepare="$HOME"/Downloads/autodockZN_filesAndTutorial/prepare_gpf4zn.py
args=(
    -l ligand.pdbqt
    -r protein_tz.pdbqt 
    -o protein_tz.gpf
    -p npts=500,500,500
    -p gridcenter="$(cut -f 2 aver.line.comma.dat)" 
    -p parameter_file=AD4Zn.dat
}
"$MGLROOT"/bin/pythonsh "$prepare" "${args[@]}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM