我對這段代碼中bash變量${fwhm}
有什麼問題感到困惑。由python輸出設置的浮點bash變量不起作用
fwhm_dt_ft=(`/u/ki/awright/thiswork/eyes/CRNitschke/CRNitschke.py ${file}`)
fwhm=${fwhm_dt_ft[0]}
dt=${fwhm_dt_ft[1]}
ft=${fwhm_dt_ft[2]}
我運行此之後,一切都在bash看起來正常:
~$ echo "fwhm= " ${fwhm}
fwhm= 0.52
~$ echo "dt= " ${dt}
dt= 139.960346726
~$ echo "ft= " ${ft}
ft= 15.2307051015
除非我有這些CRNitschke.py
返回3個,我需要有這個bash腳本使用浮點數腳本作爲其他地方的投入存在問題。
#! /usr/bin/env python
import sys
print "sys.argv=",sys.argv
我得到奇怪的看的東西:例如,對於Python腳本print_args.py
給出
~$ ./print_argv.py ${fwhm} ${dt} ${ft}
sys.argv= ['./print_argv.py', '\x1b[?1034h0.52', '139.960346726', '15.2307051015']
沒有人知道可能是什麼了與fwhm
變量或我怎麼能解決呢?
這很奇怪,因爲當我剛剛輸入的東西在它的罰款:
~$ abc=(0.52 139.960346726 15.2307051015)
~$ ./print_argv.py ${abc[0]} ${abc[1]} ${abc[2]}
sys.argv= ['./print_argv.py', '0.52', '139.960346726', '15.2307051015']
- 亞當
次日更新: ... OK,這裏是一個小補充信息。我在腳本中,而不是在命令行中運行這個命令並輸出結果顯示如下:
+ echo 'fwhm= ' '0.58'
fwhm= 0.58
+ echo 'dt= ' 114.988365258
dt= 114.988365258
+ echo 'ft= ' 12.190067533
ft= 12.190067533
,你可以看到,在echo
線,fwhm
數值是在引號,這是不適合的情況下dt
和ft
。我不知道爲什麼會出現這種情況,因爲python會將所有內容打印出來。任何幫助,將不勝感激!
'\ x1b [?1034h'是終端在某種形狀或形式下的轉義序列; '\ x1b'是逃跑。也許它是着色;也許這是別的。很大程度上取決於'?'實際代表什麼。 –
@JonathanLeffler是否有任何類型的命令可以用來查找更多關於「$ {fwhm}」的詳細信息,以及這個轉義序列究竟代表什麼? – arwright3
您可以使用例如'echo「{fhwm}」| od -c「(或任何類似的字符分析程序)來識別變量中的內容。對於序列的含義,您可以調查[ANSI轉義碼](http://en.wikipedia。org/wiki/ANSI_escape_code)維基百科。 –