2017-07-29 42 views
0

Yad中的Bash變量。Bash - 在yad窗體組合框中使用變量

編輯 - yad'!'字段分隔符不分隔字段。

在研究了其他問題之後,我們的手冊頁和其他yad資源,這讓我難住了。

我想在yad表單組合框中使用變量。

這些變量從列表(cam_list)讀 - 在這種情況下,兩個相機型號都列出來,每個其次是九個參數 - (在這種情況下,未設置的問題並不重要)

450D 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
N3300 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 

變量$ cam1和$ cam2聲明如下 - 文本文件中的第1和第11項。

cam1=$(awk 'BEGIN { FS = " " } ; { print $1 }' $cam_list) 
cam2=$(awk 'BEGIN { FS = " " } ; { print $11 }' $cam_list) 

檢查變量

echo $cam1 $cam2 
450D N3300 

認沽$ CAM1和CAM2 $成連日來表單字段

yad --form --center --text="test" \ 
       --field="Camera":CB \ 
        "$cam1!$cam2" 

yad output

還是這樣

"$cam1"!"$cam2" 

同樣的結果

而且封閉變量在雙引號表示$ CAM1只有...

""$cam1"!"$cam2"" 

yad output

的行爲與複選框相同。例如;

yad --form --center --title="$TITLE" \ 
     --text="Please select a camera" \ 
     --field="$cam1":CHK \ 
      'TRUE!FALSE' \ 
     --field="$cam2":CHK \ 
      'TRUE!FALSE' 

沒有足夠的信譽來發布的第三圖像,但擴展型變量分組到單個複選框,而第二個複選框未與變量關聯 - 怪異。

這是一個頭痛的,但它的工作原理 - 變量正確擴大

--field="ImageMagick threads":NUM \ 
      "$defaultcores"!1.."$CORES"!1!0 \ 

我不知道這是否是一個問題,連日來或我的應用程序。我有一堆yad對話框和一個paned筆記本(6個選項卡),在同一個bash腳本中運行良好。

回答

0

這是你的問題:

檢查變量

echo $cam1 $cam2 
450D N3300 

你看,如果你逐個檢查他們,你會得到這樣的:

echo $cam1 
450D N3300 
echo $cam2 

也就是說,$cam1包含「450D \ nN3300 \ n」並且$cam2包含「」。在這兩種情況下,$1是該文件的第一個字段,並且$11是......沒有任何內容。如果你想使用awk,那麼你需要檢查條件中的NR

cam1=$(awk 'NR==1 { print $1 }' "$cam_list") 
cam2=$(awk 'NR==2 { print $1 }' "$cam_list") 
+0

我看到錯誤。所有使用的列表和日誌文件都是單一連續行。 cam_list是單獨的行條目。直到您指出錯誤時,纔會發生這種情況。 – GeorgeC